Wget http://redis.googlecode.com/files/redis-2.2.7.tar.gz 


二、.安装部署 
Redis代码   收藏代码
  1. tar zxvf   
  2. redis-2.2.7.tar.gz  
  3. cd redis-2.2.7.tar.gz  
  4. make  


可以将redis.conf 复制到 /etc/下 
Redis代码   收藏代码
  1. cp redis.conf /etc/  
  2. cp src/redis-server  src/redis-cli src/redis-benchmark /usr/local/redis  

启动redis 
Redis代码   收藏代码
  1. /usr/local/redis/redis-server redis.conf  

可以将启动命令加到/etc/rc.local 文件里, 

三、 配置文件 

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代码   收藏代码
  1. redis> set dd dd  
  2. (error) ERR operation not permitted  

rename-command : 命令改名,相当于linux  alias 
可以用改功能屏蔽一些危险命令 
如rename-command CONFIG ""。别名为空就可。 

13.LIMITS 

maxclients 128:最大连接数;0 表示不限制 

maxmemory <bytes> : 最大使用内存,推荐生产环境下做相应调整,我们用的是只用来做高速缓存,限制2G。默认情况下,redis会占用可用的所有内存。 
Redis代码   收藏代码
  1. maxmemory-policy volatile-lru: 过期策略,提供六种策略  
  2. [b][color=red]volatile-lru:删除过期和lru 的key(默认值)[/color][/b]  
  3. allkeys-lru : 删除lru算法的key  
  4. volatile-random:随机删除即将过期key  
  5. allkeys->random:随机删除(这个真傻)  
  6. volatile-ttl : 删除即将过期的  
  7. 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 

[/size][/size]