redis配置单机和集群

依赖gcc(gcc用yum方式安装,尽量不要手动装) tcl
下载依赖插件:http://downloads.sourceforge.net/tcl/tcl8.6.6-src.tar.gz
redis下载地址:http://redis.io/download

安装tcl
#tar -xzvf tcl8.6.6-src.tar.gz
#cd tcl8.6.6/unix
#./configure --prefix=/data/TRS/tcl --mandir=/data/TRS/tcl/man --enable-64bit --without-tzdata
#make && make install

安装redis单节点,二进制包,解压编译即可
#mkdir -p /data/TRS/redis/logs #日志目录
#mkdir -p /data/TRS/redis/db #数据存储目录
#cd /data/TRS/redis
#tar xzf redis-3.2.3.tar.gz
#cd redis-3.2.3 #应用目录
#make

#chown -R haieradmin.root /data/TRS/redis
#chmod -R 775 /data/TRS/redis

配置
daemonize yes #daemonize:Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程
port 6379
bind 10.159.33.143 127.0.0.1
logfile "/data/TRS/redis/logsredis.log"
databases 16 #设置数据库的数量,默认数据库为0
dbfilename dump.rdb #指定本地数据库文件名,默认值为dump.rdb
dir /data/TRS/redis/db/redisdata #指定本地数据库存放目录(别忘记创建目录文件夹)


启动server,可以做个脚本,方便启动
#cd /data/TRS/redis
#vim start_redis_server.sh
cd /data/TRS/redis/src
./redis-server ../redis.conf &

客户端连接命令
#cd /data/TRS/redis/src
#./redis-cli -h 10.159.33.143 -p 6379

 

安装redis集群,6个节点,三主三从(为方便均部署在一台服务器上)
搭建集群需要的环境:
搭建集群需要使用到官方提供的ruby脚本。
需要安装ruby的环境:
a) yum install ruby:安装ruby
b) yum install rubygems:安装包的管理器

#cd /data/TRS/redis
#mkdir 800{1,2,3,4,5,6}

#mkdir -p /data/TRS/redis/800{1,2,3,4,5,6}/logs #日志目录
#mkdir -p /data/TRS/redis/800{1,2,3,4,5,6}/db #数据存储目录

#cp redis.conf 8001
#cp redis.conf 8002
#cp redis.conf 8003
#cp redis.conf 8004
#cp redis.conf 8005
#cp redis.conf 8006

修改配置文件(以其中一个为例)
activerehashing yes
aof-load-truncated yes
aof-rewrite-incremental-fsync yes
appendfilename "appendonly.aof"
appendfsync everysec #每秒同步一次数据
appendonly no #指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为 redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认为no

auto-aof-rewrite-min-size 64mb
auto-aof-rewrite-percentage 100
bind 10.159.33.143 127.0.0.1
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit pubsub 32mb 8mb 60
client-output-buffer-limit slave 256mb 64mb 60
cluster-config-file nodes-6380.conf
cluster-enabled yes
cluster-node-timeout 15000
daemonize yes #Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程
databases 16
dbfilename dump_6380.rdb #指定本地数据库文件名,默认值为dump.rdb
dir /data/TRS/redis/8001/db
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
hll-sparse-max-bytes 3000
hz 10
latency-monitor-threshold 0
list-compress-depth 0
list-max-ziplist-size -2
logfile "/data/TRS/redis/8001/logs/redis-6380.log"
loglevel notice #Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose
lua-time-limit 5000
maxmemory 2147483648
no-appendfsync-on-rewrite no
notify-keyspace-events ""
pidfile /data/TRS/redis/8001/redis_6380.pid
port 6380
protected-mode yes
rdbchecksum yes
rdbcompression yes #指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大
repl-disable-tcp-nodelay no
repl-diskless-sync-delay 5
repl-diskless-sync no
save 300 10 #指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合
save 60 10000
save 900 1
set-max-intset-entries 512
slave-priority 100
slave-read-only yes
slave-serve-stale-data yes
slowlog-log-slower-than 10000
slowlog-max-len 128
stop-writes-on-bgsave-error yes
supervised no
tcp-backlog 511
tcp-keepalive 300
timeout 800 #当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
#slaveof <masterip> <masterport> #设置当本机为slav服务时,设置master服务的IP地址及端口,在Redis启动时,它会自动从master进行数据同步
#masterauth <master-password> #当master服务设置了密码保护时,slav服务连接master的密码
#requirepass foobared #设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过AUTH <password>命令提供密码,默认关闭

设置主从有两种方法
a)手动修改配置文件
#vim redis.conf
slaveof 10.159.33.143 6379

b)动态设置
通过redis-cli 连接到从节点服务器,执行下面命令即可。
slaveof 10.159.33.143 6379

注意事项
如果你使用主从复制,那么要确保你的master激活了持久化,或者确保它不会在当掉后自动重启。原因:slave是master的完整备份,因此如果master通过一个空数据集重启,slave也会被清掉。在配置redis复制功能的时候如果主数据库设置了密码,需要在从数据的配置文件中通过masterauth参数设置主数据库的密码,这样从数据库在连接主数据库时就会自动使用auth命令认证了。相当于做了一个免密码登录。

redis的Sentinel
sentinel功能
redis的sentinel系统用于管理多个redis服务器,该系统主要执行三个任务:监控、提醒、自动故障转移。
1、监控(Monitoring): Redis Sentinel实时监控主服务器和从服务器运行状态,并且实现自动切换。
2、提醒(Notification):当被监控的某个 Redis 服务器出现问题时, Redis Sentinel 可以向系统管理员发送通知, 也可以通过 API 向其他程序发送通知。
3、自动故障转移(Automatic failover): 当一个主服务器不能正常工作时,Redis Sentinel 可以将一个从服务器升级为主服务器, 并对其他从服务器进行配置,让它们使用新的主服务器。当应用程序连接Redis 服务器时, Redis Sentinel会告之新的主服务器地址和端口。
注意:在使用sentinel监控主从节点的时候,从节点需要是使用动态方式配置的,如果直接修改配置文件,后期sentinel实现故障转移的时候会出问题

#cd /data/TRS/redis
#vim sentinel.conf
dir /tmp
port 26379
sentinel down-after-milliseconds mymaster 30000
sentinel failover-timeout mymaster 180000
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel parallel-syncs mymaster 1


配置启动和停止脚本(对所有节点都要配置一个脚本)
#vim start-redis6380.sh
cd /data/TRS/redis/redis-4.0.2/src/
./redis-server /data/TRS/redis/cli-1/redis.conf &

#vim stop-redis.sh
/data/TRS/redis/redis-4.0.2/src/redis-cli -h 127.0.0.1 -p 6380 shutdown
/data/TRS/redis/redis-4.0.2/src/redis-cli -h 127.0.0.1 -p 6381 shutdown
/data/TRS/redis/redis-4.0.2/src/redis-cli -h 127.0.0.1 -p 6382 shutdown


启动sentinel
#redis-sentinel sentinel.conf

安装redis和ruby的接口
#gem install redis

不安装redis和ruby接口汇报如下错误
报错,提示不能加载redis,是因为缺少redis和ruby的接口,使用gem 安装
错误内容:
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- redis (LoadError)
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from ./redis-trib.rb:25

gem install redis --version 3.0.0
注意:gem install redis --version 3.0.0 失败的话,需要修改一下gem的源
gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/

启动集群
#cd /data/TRS/redis/src
#redis-trib.rb create --replicas 1 10.159.33.143:7000 10.159.33.143:7001 10.159.33.143:7002 10.159.33.143:7003 10.159.33.143:7004 10.159.33.143:7005

连接集群
#redis-cli -c -p 7000
> info

 

posted on 2017-11-21 17:01  badboy1120  阅读(189)  评论(0编辑  收藏  举报

导航