一、下载与安装

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

二、系统参数调整

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

三、Redis持久化方式 
1、RDB: 
保存某个时间点上的数据集,服务器故障时丢失上次快照后的数据

save 900 1      //900s内,如果有1个key发生变化,就进行一个快照
save 300 10
save 60 10000

2、AOF: 
设置不同的fsync策略(no、everysec、always),最大程度保证数据安全

appendonly no/yes    //关闭或开启
appendfsync everysec //每秒钟写一次aof文件

四、Redis主从复制配置

vi redis.conf
daemonize yes
tcp-backlog 1024
logfile "./redis.log"
dir ./
save ""
appendonly yes
appendfsync everysec
masterauth "myredis"
requirepass "myredis"


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


五、启动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


六、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等待系统自己同步)


七、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 redish