redis集群搭建

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis集群搭建相关的知识,希望对你有一定的参考价值。

请根据该配置修改 yum -y install gcc tcl

tar zxvf redis-3.0.3.tar.gz cd redis-3.0.3 make PREFIX=/root/redis3 install

修改配置文件(模板7000端口) protected-mode no daemonize yes pidfile /data/websrv/redis4/redis_110.pid databases 1 cluster-enabled yes cluster-config-file /data/websrv/redis4/nodes-110.conf cluster-node-timeout 15000 cluster-migration-barrier 1 cluster-require-full-coverage yes appendonly yes maxmemory 6442450944

/data/websrv/redis4/bin/redis-server /data/websrv/redis4/redis.conf

启动redis-server: /root/redis3/bin/redis-server /root/cluster-test/7000/redis_7000.conf /root/redis3/bin/redis-server /root/cluster-test/7001/redis_7001.conf /root/redis3/bin/redis-server /root/cluster-test/7002/redis_7002.conf /root/redis3/bin/redis-server /root/cluster-test/8000/redis_8000.conf /root/redis3/bin/redis-server /root/cluster-test/8001/redis_8001.conf /root/redis3/bin/redis-server /root/cluster-test/8002/redis_8002.conf

yum -y install ruby rubygems

gem install redis 其中 gem install redis命令执行时出现了:

redis requires Ruby version >= 2.2.2的报错,查了资料发现是Centos默认支持ruby到2.0.0,可gem 安装redis需要最低是2.2.2

解决办法是 先安装rvm,再把ruby版本提升至2.3.3

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 curl -sSL https://get.rvm.io | bash -s stable source /usr/local/rvm/scripts/rvm

  1. 查看rvm库中已知的ruby版本

rvm list known

  1. 安装一个ruby版本

rvm install 2.3.3

  1. 使用一个ruby版本

rvm use 2.3.3

如果想设置为默认版本,可以这样 rvm use 2.3.3 --default

查询已经安装的ruby rvm list 卸载一个已安装版本 rvm remove 2.3.3

再次执行gem install redis

cd cp redis-trib.rb /usr/local/bin/redis-trib

完成机群之后不使用密码即可登录查看key

测试内容 在任意主节点进行KEY写入 [root@server20 bin]# ./redis-cli -c -h 172.16.2.10 -p 7002 172.16.2.10:7002> set lee svenlee

在任意节点进行读取 [root@server20 bin]# ./redis-cli -c -h 172.16.2.10 -p 8002 172.16.2.10:8002> get lee -> Redirected to slot [9942] located at 172.16.2.10:7001 "svenlee"

显示成功

如果设置密码需要每个进程都要设置一次密码

实例(临时设置) 我们可以通过以下命令查看是否设置了密码验证: 127.0.0.1:6379> CONFIG get requirepass

  1. "requirepass"
  2. "" 默认情况下 requirepass 参数是空的,这就意味着你无需通过密码验证就可以连接到 redis 服务。 你可以通过以下命令来修改该参数: 127.0.0.1:6379> CONFIG set requirepass "runoob" OK 127.0.0.1:6379> CONFIG get requirepass
  3. "requirepass"
  4. "runoob" 设置密码后,客户端连接 redis 服务就需要密码验证,否则无法执行命令。 语法 AUTH 命令基本语法格式如下: 127.0.0.1:6379> AUTH password 实例 127.0.0.1:6379> AUTH "runoob" OK 127.0.0.1:6379> SET mykey "Test value" OK 127.0.0.1:6379> GET mykey "Test value"

(长期设置) 原因可能有两个: 1.只是单纯的通过命令行设置了密码,这种设置方式是临时的,当服务器重启后,密码会失效。 [html] view plain copy config set requirepass yourPassword
解决方案:在redis的配置文件中直接配置密码 配置文件中有一行是这样的 [html] view plain copy #requirepass foobared
去掉注释,并且把foobared改为自己的密码 如: [html] view plain copy requirepass mypwd

2.如果你已经按照上面的方法在配置文件中设置了密码,但启动后仍旧无效,说明你肯定没有指定配置文件运行。服务端也会报出如下警告: [html] view plain copy Warning: no config file specified, using the default config.

windows下正确的启动方式: [html] view plain copy redis-server.exe redis.windows.conf
在指定了配置文件后,再启动就可以读取到设置的密码了。

以上是关于redis集群搭建的主要内容,如果未能解决你的问题,请参考以下文章

Redis Cluster集群的搭建

Redis实战-Redis集群环境搭建(自动搭建)

Redis实战-Redis集群环境搭建(自动搭建)

redis集群搭建怎么分配内存的

redis高级应用(集群搭建集群分区原理集群操作)

Docker极简入门:使用Docker-Compose 搭建redis集群