redis安装过程
解压压缩包
tar zxf redis-3.0.2.tar.gz
然后进入解压目录中
make && make install #确保安装了gcc
然后进入utils目录
cd utils/
./install_server.sh #执行安装脚本
默认端口6379
内核参数overcommit_memory
redis-cli #命令行工具
主从配置
在另一台主机上安装redis
然后进入配置文件中进行修改
vim /etc/redis/6379.conf
206 # slaveof <masterip> <masterport>
207 slaveof 172.25.254.143 6379
按照以上修改即可
最后效果如下
[root@server2 ~]# redis-cli
127.0.0.1:6379> set name daxingsb
OK
127.0.0.1:6379> get name
"daxingsb"
[root@server3 utils]# redis-cli
127.0.0.1:6379> get name
"daxingsb"
哨兵服务sentinel的配置
53 sentinel monitor mymaster 172.25.254.143 6379 2 #哨兵监控的主机ip和端口 2为两台或以上认为其down机
82 sentinel down-after-milliseconds mymaster 30000 #ping 发出后30秒无回应认为其down机
90 sentinel parallel-syncs mymaster 1 #可以进行同步的slave数量,越小越慢
115 sentinel failover-timeout mymaster 180000
将这个文件复制到/etc/redis下
cp sentinel.conf /etc/redis
然后可以开启哨兵服务
redis-server /etc/redis/sentinel.conf --sentinel
可以看到
.
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 3.0.2 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in sentinel mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 26379
| `-._ `._ / _.-' | PID: 16915
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
16851:X 07 Aug 11:07:27.830 # Sentinel runid is e4b570ac1279d72070ed073763164e5b5a842935
16851:X 07 Aug 11:07:27.830 # +monitor master mymaster 172.25.254.143 6379 quorum 2
16851:X 07 Aug 11:07:27.831 * +slave slave 172.25.254.146:6379 172.25.254.146 6379 @ mymaster 172.25.254.143 6379
16851:X 07 Aug 11:07:27.853 * +slave slave 172.25.254.145:6379 172.25.254.145 6379 @ mymaster 172.25.254.143 6379
16851:X 07 Aug 11:08:14.958 * +sentinel sentinel 172.25.254.145:26379 172.25.254.145 26379 @ mymaster 172.25.254.143 6379
集群cluster的配置过程
我们现在/usr/local下创建cluster目录
然后我们可以在里头创建六个目录来编写每个进程对应的配置文件
cd /usr/local
mkdir cluster
cd cluster/
mkdir 3000{1,2,3,4,5,6}
然后在里面编写配置文件
vim /usr/local/cluster/30001/redis.conf
1 daemonize yes
2 pidfile "/usr/local/cluster/30001/redis.pid" #pid文件位置
3 port 30001 #端口号
4 logfile "/usr/local/cluster/30001/redis.log" #日志文件目录
5 dir "/usr/local/cluster/30001" #工作目录
6 cluster-enabled yes #集群工作模式打开
7 cluster-config-file nodes-30001.conf #集群节点配置文件
8 cluster-node-timeout 15000 #集群节点等待时间
9 appendonly yes #日志格式使用aof
然后将这个文件复制到创建的那几个目录
cp redis.conf /usr/local/cluster/30002/
…
…
修改为自己对应的号码
vim /usr/local/cluster/30002/redis.conf
然后开启redis集群
redis-server 30001/redis.conf
redis-server 30002/redis.conf
redis-server 30003/redis.conf
redis-server 30004/redis.conf
redis-server 30005/redis.conf
redis-server 30006/redis.conf
查看进程的情况
ps aux
root 17844 0.1 0.4 137440 2432 ? Ssl 14:12 0:00 redis-server *:30001 [cluster]
root 17849 0.1 0.4 137440 2432 ? Ssl 14:12 0:00 redis-server *:30002 [cluster]
root 17853 0.1 0.4 137440 2432 ? Ssl 14:13 0:00 redis-server *:30003 [cluster]
root 17858 0.1 0.4 137440 2432 ? Ssl 14:13 0:00 redis-server *:30004 [cluster]
root 17863 0.1 0.4 137440 2432 ? Ssl 14:13 0:00 redis-server *:30005 [cluster]
root 17867 0.1 0.4 137440 2436 ? Ssl 14:13 0:00 redis-server *:30006 [cluster]
使用ruby脚本来控制集群
安装rubygem
yum install rubygems-1.3.7-5.el6.noarch.rpm -y
使用gem命令来安装相应的模块
gem install --local redis-3.3.1.gem
将ruby脚本复制到bin下来使用
cd redis-3.0.2/src/
cp redis-trib.rb /usr/local/bin/
创建集群
redis-trib.rb create --replicas 1 127.0.0.1:30001 127.0.0.1:30002 127.0.0.1:30003 127.0.0.1:30004 127.0.0.1:30005 127.0.0.1:30006
数据的迁移
redis-trib.rb import --from 127.0.0.1:6379 127.0.0.0.1:30001