一、下载与安装
wget http://download.redis.io/releases/redis-3.0.0.tar.gz tar -zxvf redis-3.0.0.tar.gz -c /usr/local/ cd /usr/local/redis-3.0.0 make make install
- 1
- 2
- 3
- 4
- 5
二、系统参数调整
vi /etc/sysctl.conf
vm.overcommit_memory = 1 //允许分配所有的物理内存
net.ipv4.tcp_max_syn_backlog = 2048 //未完成的TCP三次握手队列长度 net.core.somaxconn = 1024 /sbin/sysctl –p //修改open file参数 vi /etc/security/limits.conf * soft nofile 65535 * hard nofile 65535
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
三、Redis持久化方式
1、RDB:
保存某个时间点上的数据集,服务器故障时丢失上次快照后的数据
save 900 1 //900s内,如果有1个key发生变化,就进行一个快照
save 300 10 save 60 10000
- 1
- 2
- 3
2、AOF:
设置不同的fsync策略(no、everysec、always),最大程度保证数据安全
appendonly no/yes //关闭或开启
appendfsync everysec //每秒钟写一次aof文件
- 1
- 2
四、Redis主从复制配置
vi redis.conf
daemonize yes
tcp-backlog 1024
logfile "./redis.log"
dir ./
save ""
appendonly yes appendfsync everysec masterauth "myredis" requirepass "myredis"
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
vi redis-slave.conf
daemonize yes
tcp-backlog 1024
logfile "./redis.log"
dir ./
save "" appendonly yes appendfsync everysec masterauth "myredis" requirepass "myredis" slaveof 10.118.242.35 6379
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
五、启动Redis
redis-server --help
redis-server redis.conf // 默认端口号6379,可以使用--port参数指定 redis-server redis-slave.conf --port 6378 redis-cli -a myredis -p 6378 ~:6378>set key value redis-cli -a myredis -p 6378 shutdown
- 1
- 2
- 3
- 4
- 5
- 6
- 7
六、Redis.conf主要配置参数
daemonize:是否以后台daemon方式运行
pidfile:pid文件位置
port:监听的端口号
timeout:请求超时时间
loglevel:log信息级别
logfile:log文件位置
databases:开启数据库的数量
save * *:保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。
rdbcompression:是否使用压缩
dbfilename:数据快照文件名(只是文件名,不包括目录)
dir:数据快照的保存目录(这个是目录)
appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。
appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
七、Redis启动脚本
vim /etc/init.d/redis
#!/bin/bash
#
# Init file for redis
#
# chkconfig: - 80 12 # description: redis daemon # # processname: redis # config: /etc/redis.conf # pidfile: /var/run/redis.pid source /etc/init.d/functions #BIN="/usr/local/bin" BIN="/usr/local/bin" CONFIG="/etc/redis.conf" PIDFILE="/var/run/redis.pid" ### Read configuration [ -r "$SYSCONFIG" ] && source "$SYSCONFIG" RETVAL=0 prog="redis-server" desc="Redis Server" start() { if [ -e $PIDFILE ];then echo "$desc already running...." exit 1 fi echo -n $"Starting $desc: " daemon $BIN/$prog $CONFIG RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog return $RETVAL } stop() { echo -n $"Stop $desc: " killproc $prog RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog $PIDFILE return $RETVAL } restart() { stop start } case "$1" in start) start ;; stop) stop ;; restart) restart ;; condrestart) [ -e /var/lock/subsys/$prog ] && restart RETVAL=$? ;; status) status $prog RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|restart|condrestart|status}" RETVAL=1 esac exit $RETVAL # chmod 755 /etc/init.d/redis # chkconfig --add redis # chkconfig --level 345 redis on # chkconfig --list redis
http://blog.csdn.net/jason5186/article/details/48269089