1、安装单机版redis
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
tar -xzvf tcl8.6.1-src.tar.gz
cd /usr/local/tcl8.6.1/unix/
./configure
make && make install
使用redis-3.2.8.tar.gz
tar -zxvf redis-3.2.8.tar.gz
cd redis-3.2.8
make && make test && make install
2、redis的生产环境启动方案
(1)redis utils目录下
cp ./redis_init_script /etc/init.d/redis_6379
#6379是我们希望这个redis实例监听的端口号
vim /etc/init.d/redis_6379
a)在redis_6379最上面,加入两行注释,让redis跟随系统启动自动启动
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
b)第6行的REDISPORT,设置为相同的端口号(默认就是6379)
chkconfig redis_6379 on
(2)创建两个目录:
mkdir /etc/redis(存放redis的配置文件)
mkdir /var/redis/6379(存放redis的持久化文件)
cp ./redis.conf /etc/redis/6379.conf
vm /etc/redis/6379.conf
daemonize yes 让redis以daemon进程运行
pidfile /var/run/redis_6379.pid 设置redis的pid文件位置
port 6379 设置redis的监听端口号
dir /var/redis/6379 设置持久化文件的存储位置
(3)启动redis
chmod 777 /etc/init.d/redis_6379,
/etc/init.d/redis_6379 start,启动redis
ps -ef | grep redis #确认redis进程是否启动
3、持久化的配置策略
(1)RDB
save 900 1
save 300 10
save 60 10000
(2)AOF
#打开AOF
appendonly yes
#每接收一条写命令,就写入日志文件中,当然是先写入os cache的,然后每隔一秒再fsync一下
appendfsync everysec
#在上一次AOF rewrite之后,AOF文件大小超过上一次的100%,并且大于64MB,触发 rewrite
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
4.主从配置
(1)
每个redis.conf中的bind 127.0.0.1 -> bind自己的ip地址
每个节点上都: iptables -A INPUT -ptcp --dport 6379 -j ACCEPT
(2)在slave node上配置:
slaveof 192.168.1.1 6379 #主加IP 端口
(3)强制读写分离
slave-read-only yes
(4)集群安全认证
master:
requirepass 123456
slave:
masterauth <master-password>
5、解决异步复制和脑裂导致的数据丢失
min-slaves-to-write 3
min-slaves-max-lag 10