一、 下载安装
Wget http://redis.googlecode.com/files/redis-2.2.7.tar.gz
二、.安装部署
tar zxvf
redis-2.2.7.tar.gz
cd redis-2.2.7.tar.gz
make
可以将redis.conf 复制到 /etc/下
cp redis.conf /etc/
cp src/redis-server src/redis-cli src/redis-benchmark /usr/local/redis
启动redis
redis-server /duitang/dist/conf/redis/redis_session.conf
三、 配置文件
vim /etc/redis.conf
1.redis 的配置文件单位比较有意思,对1k 和1kb 这样的单位做了明确的区分,不过感觉意义不是很大。
# 1k => 1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb => 1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024 bytes
而且,单位不区分大小写,1M = 1m
2.daemonize no
默认下,redis启动不以守护进程的方式启动,生产环境下建议将配置改为yes
3.pidfile /var/run/redis.pid,pid文件,没啥好说的
4.port 6379,配置redis端口,默认6379。可以将port配置为0,此时不监听tcp协议,有些怪怪的。
5.bind 127.0.0.1,绑定ip。默认绑定所有本机ip,一般用在服务器多ip下,可以只监听内网服务器ip,保证服务安全。
6.unixsocket /tmp/redis.sock。sock文件
7.timeout 300。客户端超时时间,单位秒
8.loglevel verbose
log级别,支持四个级别,debug,notice,verbose,warning
9.logfile log文件路径
logfile stdout,log输出到标准设备,logs不写文件,输出到空设备,/deb/null
10.SNAPSHOTTING 快照,持久化相关
save <seconds> <changes>
save 900 1
保存快照的频率,表示:在多长时间内执行一定数量的写操作时,保存快照的频率,可以设置多个条件。如果都注释掉,则不做内存数据持久化。本环境就是把redis只用作cache,不开启持久化功能。
rdbcompression:是否使用压缩
dbfilename:快照数据库名称
dir:#数据库存放路径
11. REPLICATION 主从配置(配置从服务器)
slaveof <masterip> <masterport>: 主库ip 端口
masterauth <master-password>:主库服务器口令,如果主服务器未打开requirepass,怎不需要此项
slave-serve-stale-data yes:在master服务器挂掉或者同步失败时,从服务器是否继续提供服务。
12.########## SECURITY ########
安全相关
requirepass foobared:设置redis服务密码,如果开启,则客户端连接时需要 -a 指定密码,否则操作会提示无权限
redis> set dd dd
(error) ERR operation not permitted
rename-command : 命令改名,相当于linux alias
可以用改功能屏蔽一些危险命令
如rename-command CONFIG ""。别名为空就可。
13.LIMITS
maxclients 128:最大连接数;0 表示不限制
maxmemory <bytes> : 最大使用内存,推荐生产环境下做相应调整,我们用的是只用来做高速缓存,限制2G。默认情况下,redis会占用可用的所有内存。
maxmemory-policy volatile-lru: 过期策略,提供六种策略
[b][color=red]volatile-lru:删除过期和lru 的key(默认值)[/color][/b]
allkeys-lru : 删除lru算法的key
volatile-random:随机删除即将过期key
allkeys->random:随机删除(这个真傻)
volatile-ttl : 删除即将过期的
noeviction : 永不过期,返回错误(也比较傻)
maxmemory-samples 3: 不是很明白,说是校验 lru ttl 算法准确性的。
14.APPEND ONLY MODE
appendonly:#是否开启appendonlylog,开启的话每次写操作会记一条log。相当于mysql的binlog;不同的是,每次redis启动都会读此文件构建完整数据。即使删除rdb文件,数据也是安全的。
appendfilename appendonly.aof:日志文件的名称,默认appendonly.aof
appendfsync:异步写append file 的策略。类似mysql事物log写方式。三种
appendfsync always:同步,每次写都要flush到磁盘,安全,速度慢。
appendfsync everysec :每秒写(默认值,推荐值)同mysql
appendfsync no:交给操作系统去做flush的动作
no-appendfsync-on-rewrite no:不是很清楚,防止linux阻止长耗时io问题的?
15 VIRTUAL MEMORY ,虚拟内存设置
vm-enabled no : 虚拟内存开关
vm-swap-file /tmp/redis.swap: swap文件,不同redis swap文件不能共享。而且生产环境下,不建议放在tmp目录。
vm-max-memory 0: vm大小限制。0:不限制,建议60-80% 可用内存大小。
vm-page-size 32 : 根据缓存内容大小调整,默认32字节。
vm-pages 134217728 : page数。每 8 page,会占用1字节内存。
vm-page-size * vm-pages 等于 swap 文件大小
vm-max-threads 4 : vm 最大io线程数。注意: 0 标志禁止使用vm(开关真多)
16.ADVANCED CONFIG ,高级配置
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
activerehashing yes
完整的例子
daemonize yes #默认下,redis启动不以守护进程的方式启动,生产环境下建议将配置改为yes
pidfile /duitang/data/work/redis_session.pid #pid文件,没啥好说的
port 6389 #配置redis端口,默认6379。
timeout 300 #客户端超时时间,单位秒
bind 192.168.172.14
loglevel notice #支持四个级别,debug,notice,verbose,warning
logfile /duitang/logs/sys/redis_session.log
databases 6
save 900 1 #保存快照的频率,表示在多长时间内执行一定数量的写操作时,保存快照的频率,可以设置多个条件。如果都注释掉,则不做内存数据持久化。
maxclients 0 #最大连接数;0 表示不限制
maxmemory 10gb #最大内存量,该选项是告诉Redis当使用了多少物理内存后就开始拒绝后续的写入请求,该参数能很好的保护好你的Redis不会因为使用了过多的物理内存而导致swap,最终严重影响性能甚至崩溃。
rdbcompression yes #是否使用压缩
dbfilename session.rdb #快照数据库名称
dir /duitang/data/redis_session/ #数据库存放路径
slave-serve-stale-data yes #在master服务器挂掉或者同步失败时,从服务器是否继续提供服务。
appendonly no #是否开启appendonlylog,开启的话每次写操作会记一条log,相当于mysql的binlog,写性能会变差,建议关掉。
appendfsync no #异步写append file 的策略。类似mysql事物log写方式。三种 appendfsync always:同步,每次写都要flush到磁盘,安全,速度慢; appendfsync everysec :每秒写(默认值,推荐值)同mysql;appendfsync no:交给操作系统去做flush的动作;
no-appendfsync-on-rewrite yes #进行rewrite时,是否需要fsync。rewrite是指当AOF很大的时候,通过重写内存的数据来删除原来的AOF文件,生成最新的内存数据的AOF日志
slowlog-log-slower-than 10000
slowlog-max-len 1024
vm-enabled no #不要开启Redis的VM选项,即虚拟内存功能,这个本来是作为Redis存储超出物理内存数据的一种数据在内存与磁盘换入换出的一个持久化策略,但是其内存管理成本也非常的高,并且我们后续会分析此种持久化策略并不成熟,所以要关闭VM功能
vm-swap-file /duitang/data/work/redis_session.swap
vm-max-memory 0
vm-page-size 64
vm-pages 268435456
vm-max-threads 8 #vm 最大io线程数。注意: 0 标志禁止使用vm(开关真多)
hash-max-zipmap-entries 4096
hash-max-zipmap-value 4096
list-max-ziplist-entries 4096
list-max-ziplist-value 4096
set-max-intset-entries 4096
activerehashing yes
zset-max-ziplist-entries 4096
zset-max-ziplist-value 4096
~