您的位置:首页 > 数据库 > Redis

redis安装配置手册windows

2017-09-28 00:00 609 查看

1、首先以windows服务器端为例

a) 下载redis64-2.6.12.1.zip,下载地址:https://github.com/ServiceStack/redis-windows

b) 解压redis64-2.6.12.1.zip 到D:\redis\redis64-2.6.12.1



c) 启动运行命令 开始---在搜索栏输入cmd------进入redis D:\redis\redis64-2.6.12.1安装目录

d) 输入 redis-server.exe redis.conf 启动redis 最后一定要带redis.conf



出现以上结果成功启动

注意:这个窗口不能关闭,一旦关闭其redis服务器也将关闭

e) 另外从新启动一个命令窗口 同c 进入redis安装目录

f) 输入 redis-cli.exe -h 172.0.3.6 –p 6379 设置redis服务器IP以及端口



这里在redis缓存服务器中存入了一个key为lu,value为Administrator的属性值 接着get key 就可以得到value值

2、接着项目配置

g) 首先配置redis的属性文件 进行连接redis服务器 配置文件如下:



h) 由于本次项目是基于spring的 所以在配置



i) 在项目启动加载配置文件app-context.xml的同时 在app-context.xml文件中引入

<import resource="app-redis.xml"/> 并且加载redis.properties属性文件

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

<property name="locations">

<list>

<value>classpath:conf/redis.properties</value>

</list>

</property>

</bean>

j) 编写redisservice服务接口 (具体代码请参考DCMP_BASE_USER项目)

k) 编写redisService服务接口实现类 (具体代码请参考DCMP_BASE_USER项目)



到这里redis服务器基本已经跟项目所继承

2.1、接下来是如何使用 这里已登录为例

l) 这里有个过滤器在项目初始化的时候我读取redisService

m) public void init(FilterConfig filterConfig) throws ServletException {

redisService = SpringContextHolder.getBean("redisService");

}

在过滤器中我过滤掉一些在项目中所有没有参与数据的页面和请求 包括登录页面请求

n) 登录成功以后把登录用户信息放入到redis缓存中

redisService.add(Constants.SESSION_USEROBJNAME, user, Constants.SESSION_TIMEOUT);

第一个参数是key 第二个参数为value 第三个参数是在redis服务器中存放的时间

在第四点中将介绍redisService中所有方法的含义

2.1、RedisService方法含义 以及使用

o) Redis 存放数据相当于一个MAP 有key value值组成

i. public boolean add(final RedisTransient rt,final boolean isPeresistent);

第一个参数是一个自定义对象其中包含id 和 name 属性 第二个参数是否永久保存 true为永久保存 false为不是

如果需要设置缓存时间,则第二个参数“timeout”设为false,切在常量类Constants中的SESSION_TIMEOUT设置超时秒数;

ii. public boolean add(final String keyStr, final Object valOb,final boolean isPeresistent);

第一个参数是key 第二个参数为value value为Object 类型 第三个参数同i中的意义相同

iii. public boolean add(final List<RedisTransient> list,final boolean isPeresistent);

批量新增 使用pipeline方式

iv. public void delete(String key);

通过key删除缓存服务器中的数据

v. public void delete(List<String> keys);

删除多个

vi. public boolean update(final RedisTransient rt);

修改

vii. public boolean update(final String keyStr, final Object valOb);

根据key,修改对象。

注意:第二个参数对象必须序列化。

viii. public String getStrValue(final String keyId);

通过key获取

ix. public Object getEntity(final String keyId);

通过key获取缓存对象

x. public boolean expire(final String keyId);

拦截器调用--每次访问时,重新设置session的超时时间

xi. public boolean add(final String keyStr, final Object valOb,final Long time);

新增 Object

注意:如果永久保存,第二个参数“isPeresistent”设为true;

如果需要设置缓存时间,则第二个参数“time”就是需要缓存的时间单位(秒);

3、redis.conf配置文件说明

daemonize no
Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程

pidfile /var/run/redis.pid
当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定

port 6379
指定Redis监听端口,默认端口为6379

# bind 127.0.0.1

绑定的主机地址

timeout 0
当 客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能

loglevel verbose
指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose

logfile stdout
日志记录方式,默认为标准输出,如果配置Redis为守护进程方式运行,而这里又配置为日志记录方式为标准输出,则日志将会发送给/dev/null

databases 16
设置数据库的数量,默认数据库为0,可以使用SELECT <dbid>命令在连接上指定数据库id

save 900 1
save 300 10
save 60 10000
分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改。
指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合

rdbcompression yes
指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大

dbfilename dump.rdb
指定本地数据库文件名,默认值为dump.rdb

dir ./
指定本地数据库存放目录

slaveof <masterip> <masterport>
设置当本机为slav服务时,设置master服务的IP地址及端口,在Redis启动时,它会自动从master进行数据同步

masterauth <master-password>
当master服务设置了密码保护时,slav服务连接master的密码

slave-serve-stale-data yes

requirepass foobared
设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过AUTH <password>命令提供密码,默认关闭

maxclients 128
设置同一时间最大客户端连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息

maxmemory <bytes>
指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis新的vm机制,会把Key存放内存,Value会存放在swap区

appendonly no
指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为 redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认为no

appendfsync everysec
# appendfsync no
指定更新日志条件,共有3个可选值:
no:表示等操作系统进行数据缓存同步到磁盘(快)
always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)
everysec:表示每秒同步一次(折衷,默认值)

no-appendfsync-on-rewrite no

auto-aof-rewrite-percentage 100

auto-aof-rewrite-min-size 64mb

vm-enabled no
指定是否启用虚拟内存机制,默认值为no,简单的介绍一下,VM机制将数据分页存放,由Redis将访问量较少的页即冷数据swap到磁盘上,访问多的页面由磁盘自动换出到内存中(在后面的文章我会仔细分析Redis的VM机制)
# vm-enabled yes

vm-swap-file /tmp/redis.swap
虚拟内存文件路径,默认值为/tmp/redis.swap,不可多个Redis实例共享

vm-max-memory 0
将所有大于vm-max-memory的数据存入虚拟内存,无论vm-max-memory设置多小,所有索引数据都是内存存储的(Redis的索引数据 就是keys),也就是说,当vm-max-memory设置为0的时候,其实是所有value都存在于磁盘。默认值为0

vm-page-size 32
Redis swap
文件分成了很多的page,一个对象可以保存在多个page上面,但一个page上不能被多个对象共享,vm-page-size是要根据存储的 数据大小来设定的,作者建议如果存储很多小对象,page大小最好设置为32或者64bytes;如果存储很大大对象,则可以使用更大的page,如果不 确定,就使用默认值

vm-pages 134217728
设置swap文件中的page数量,由于页表(一种表示页面空闲或使用的bitmap)是在放在内存中的,,在磁盘上每8个pages将消耗1byte的内存。

vm-max-threads 4
设置访问swap文件的线程数,最好不要超过机器的核数,如果设置为0,那么所有对swap文件的操作都是串行的,可能会造成比较长时间的延迟。默认值为4

hash-max-zipmap-entries 512
hash-max-zipmap-value 64
指定在超过一定的数量或者最大的元素超过某一临界值时,采用一种特殊的哈希算法

list-max-ziplist-entries 512
list-max-ziplist-value 64

set-max-intset-entries 512

zset-max-ziplist-entries 128

zset-max-ziplist-value 64

activerehashing yes

# include /path/to/local.conf
# include /path/to/other.conf
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Redis Windows 配置