标签:性能 aof文件 兼容性 刷新 app 活性 gem ima 问题:
本文章只是自我学习用,不适宜转载。
机器:海航云虚机(2核4GB内存),使用 Centos 7.2 64bit 操作系统,IP 分别是 192.168.100.5(主) 和 192.168.100.6(备)。
Redis 版本:3.2.3
sudo yum update sudo yum install epel-release sudo yum update sudo yum install redis sudo systemctl start redis sudo systemctl enable redis #配置redis在启动机器时自动启动
验证是否安装正确:
主节点上,修改 /etc/redis.conf,设置 bind 127.0.0.1 192.168.100.5,然后运行 sudo systemctl restart redis 来重启redis。
主节点上,修改 /etc/redis.conf,设置 slaveof 192.168.100.5 6379,然后运行 sudo systemctl restart redis 来重启redis。
确认是否设置成功:
在 master 上,运行:
不清楚这些绝对值意味着什么,但是和 https://redis.io/topics/benchmarks 上的下面结果差不多:
在备升主之前,在备上无法写:
将备升主:
此时它就可写了:
https://redis.io/commands/expire
https://redis.io/topics/persistence
(1)关于持久化的几个问题:
(2)测试 RDB:
文件的默认路径是 /var/lib/redis/dump.rbd.
默认配置:
save 900 1 #15分钟内如有一个1个key变化
save 300 10 #5分钟内,如果有10个key变化
save 60 10000 #1分钟内如果有10000个key变化
写入10个key后,备份写入:
在日志中能看到完整检测和写入过程:
(3)测试 AOF
AOF 默认被关闭,通过修改配置文件中的 appendonly yes 来将其打开。相关配置包括:
写入两个key/value,然后看到 aof 文件被修改了,其内容是文本格式:
Redis 从 3.0.5 版本开始推出了 Redis cluster 版本。
主要参考文档:https://redis.io/topics/cluster-tutorial
(1)创建配置文件 redis.conf
port 7000 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes
(2)创建留个目录,每个目录运行一个 redis 进程,代表一个 redis 节点。共6个节点,3主3备。
mkdir cluster-test cd cluster-test mkdir 7000 7001 7002 7003 7004 7005
(3)将 redis.conf 拷贝到 7000 ~ 7005 目录中,修改其中的 port 值为各目录name,并且将 redis-server 文件拷贝到每个目录中。
(4)进入每个目录,启动进程
../redis-server ./redis.conf &
结果如下:
[cloud-user@redis-slave ~]$ ps -ef | grep redis cloud-u+ 23828 1 0 17:05 ? 00:00:04 ./redis-server *:7000 [cluster] cloud-u+ 23831 1 0 17:05 ? 00:00:04 ./redis-server *:7001 [cluster] cloud-u+ 23834 1 0 17:05 ? 00:00:04 ./redis-server *:7002 [cluster] cloud-u+ 23837 1 0 17:06 ? 00:00:04 ./redis-server *:7003 [cluster] cloud-u+ 23840 1 0 17:06 ? 00:00:04 ./redis-server *:7004 [cluster] cloud-u+ 23843 1 0 17:06 ? 00:00:05 ./redis-server *:7005 [cluster]
(5)下载 redis 源码,比如 http://download.redis.io/releases/redis-3.2.3.tar.gz,解压,从 src 目录找到 redis-trib.rb 文件,拷贝到工作目录。注意redis-trib.rb版本必须和你使用的redis的版本相同,否则会出现兼容性问题。
(6)安装 ruby 和 rubygems
sudo yum install ruby
sudo yum install rubygems
sudo gem install redi
(7)运行下面的命令,创建 cluster:
sudo ruby redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
(8)检查cluster 状态,OK
可以看到,6个节点,分为3个master,3个slave。每个master分了5461个slots,共计 16384 slots。
(9)基本操作
此时,7003 由 slave 变为 master,它没有 slave。原来在 7000 上的数据改到了 7003 上:
启动 7000,它变为了 7003 的 slave:
(1)按照同样方法,启动 7006 redis 进程
(2)运行 sudo ruby redis-trib.rb add-node 127.0.0.1:7006 127.0.0.1:7000 命令,将它加入集群
(3)此时,它作为孤立的 master node,上面却没有分配 slots
(4)执行 reshard 操作
sudo ruby redis-trib-3.2.3.rb reshard 127.0.0.1:7000
结果:
会看到从其他的 master 上有移动一些 slots 到 7006 上。
(1)增加 7007
(2)运行
sudo ruby redis-trib.rb add-node --slave --master-id 98c93f338eaada7ced83e0e02360721c6f2187e2 127.0.0.1:7007 127.0.0.1:7000
结果:
能看到 7006 和 7007 之间的主备关系:
2.2.4 移除主节点
运行:
udo ruby redis-trib.rb del-node 127.0.0.1:7000 98c93f338eaada7ced83e0e02360721c6f2187e2
结果:
看来要先做resharding:
结果:
直接删除,不需要提前做 resharding:
标签:性能 aof文件 兼容性 刷新 app 活性 gem ima 问题:
原文地址:http://www.cnblogs.com/sammyliu/p/6929066.html