Cache-Redis

Redis


Standalone(单节点)


Cluster(集群)

redis-3.2.8_cluster
		├── config
		│   ├── redis_31337.conf
		│   ├── redis_31338.conf
		│   └── redis_31339.conf
		│
		├── dbfile
		│
		├── logs
		│
		├── redis-3.2.8
		│   ├── mkreleasehdr.sh
		│   ├── redis-benchmark
		│   ├── redis-check-aof
		│   ├── redis-check-rdb
		│   ├── redis-cli
		│   ├── redis-sentinel
		│   ├── redis-server
		│   └── redis-trib.rb
		│
		├── redis-3.2.2.gem #ruby redis gem
		└── redis-trib.rb
	bind <ip>
	port <port>
	daemonize yes
	pidfile <path>
	logfile <filepath>
	dbfilename <filename>
	dir <directory>
	appendfilename <filename>
	cluster-enabled yes
	cluster-config-file nodes-6379.conf
	

参数的具体意义参考redis doc。 config下的三个文件 redis_31337.conf

/home/test/redis-3.2.8_cluster/redis-3.2.8/redis-server /home/test/redis-3.2.8_cluster/config/redis_31337.conf
/home/test/redis-3.2.8_cluster/redis-3.2.8/redis-server /home/test/redis-3.2.8_cluster/config/redis_31338.conf
/home/test/redis-3.2.8_cluster/redis-3.2.8/redis-server /home/test/redis-3.2.8_cluster/config/redis_31339.conf
./redis-trib.rb create --replicas 0 192.168.137.128:31337 192.168.137.128:31338 192.168.137.128:31339	

执行命令 "./redis-cli -c -h <ip> -p <port>" 登录 redis server;之后 键入 "cluster info" 查看集群信息, 如果 cluster-state显示ok,那就真的ok啦。 举个栗子,可能会看到如下的信息,那表示是ok的:

<ip>:<port>> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:3
cluster_size:3
cluster_current_epoch:3
cluster_my_epoch:2
cluster_stats_messages_sent:77
cluster_stats_messages_received:77
<ip>:<port>> keys *

ERROR-1:若提示 increase “ulimit -n”则,以root用户登录主机 在文件/etc/security/limits.d/20-nproc.conf添加如下行:

<redis安装用户>      soft    nofile     65536
<redis安装用户>      hard    nofile     65536

ERROR-2:如果执行./redis-trib.rb命令报错 确保机器有ruby的环境下,下载 redis gem,执行 gem install ./redis-3.2.2.gem 命令安装。

ERROR-3:警告:过量使用内存设置为0!在低内存环境下,后台保存可能失败。为了修正这个问题, 请在/etc/sysctl.conf 添加一项 ‘vm.overcommit_memory = 1’ , 然后重启(或者运行命令’sysctl vm.overcommit_memory=1’ )使其生效。 查看,sysctl -a | grep vm.overcommit_memory 有三种方式修改内核参数,但要有root权限:

(1)编辑/etc/sysctl.conf ,改vm.overcommit_memory=1,然后sysctl -p 使配置文件生效

(2)sysctl vm.overcommit_memory=1

(3)echo 1 > /proc/sys/vm/overcommit_memory