Linux环境redis集群搭建
集群后tomcat context.xml的配置
<!-- 集群配置-->
<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />
<Manager
className="com.radiadesign.catalina.session.RedisSessionManager"
maxInactiveInterval="60"
password="123456"
sentinelMaster="mymaster"
sentinels="192.168.1.249:7000,192.168.1.249:7001,192.168.1.249:7002,192.168.1.248:7003,192.168.1.248:7004,192.168.1.248:7005"/>
原文:http://blog.csdn.net/yj327243832a/article/details/52785100
参考了以下文章
http://blog.sina.com.cn/s/blog_53b45c4d0102wg10.html
http://www.linuxidc.com/Linux/2015-08/121845.htm
https://my.oschina.net/guol/blog/506193
必读:以下内容写的ip不一致是因为部分内容是从网页上复制来的,实际ip要改成自己的,如果集群的redis不在同一服务器上,则不要写127.0.0.1,要改成实际服务器的ip,不然集群时会连接不到其他机器的redis节点。
改成真实ip后,则客户端连接都要写此ip,不能再写127.0.0.1。如果redis节点都在一台服务器上则可以写127.0.0.1
(要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下)
192.168.1.249:7000
192.168.1.249:7001
192.168.1.249:7002
192.168.1.248:7003
192.168.1.248:7004
192.168.1.248:7005
查看redis
ps -ef |grep redis
杀死全部redis的节点:
pkill -9 redis
1.首先安装好一个redis实例,已安装好的此歩可不看
、安装redis
上传服务器,解压,编译
tar -zxvf
redis-3.2.1.tar.gz
cd redis-3.2.1
make
2.可以在同目录下新建文件夹redis_cluster
3.在redis_cluster文件夹下创建log文件夹,此路径后面会用在redis.conf
logfile的配置中,便于统一存放日志
4.在redis_cluster文件夹下创建各节点的文件夹名称,建议用端口号命名,如下图:
5.将安装好的redis实例中的redis.conf分别copy至7000、7001、7002文件夹中,
并修改如下内容
port 7000
cluster-config-file
nodes-7000.conf
dbfilename dump-7000.rdb
logfile
"/usr/local/redis_cluster/log/7000.log"
bind
192.168.1.249
appendonly yes
daemonize yes
cluster-enabled
yes
cluster-node-timeout
15000
rename-command
CONFIG ""
我在192.168.1.248服务上也这样操作了一遍,将端口分配为7003、7004、7005。
logfile
"/usr/local/redis_cluster/log/"
dir
/usr/local/redis_cluster
在redis_cluster目录下创建log文件夹
在/usr/local/redis-3.2.4/src目录下,执行启动redis进程命令:
./redis-server /usr/local/redis_cluster/7000/redis.conf
./redis-server
/usr/local/redis_cluster/7001/redis.conf
./redis-server
/usr/local/redis_cluster/7002/redis.conf
在192.168.1.248上也同样操作,在/usr/local/redis-3.2.4/src目录下:
./redis-server
/usr/local/redis_cluster/7003/redis.conf
./redis-server
/usr/local/redis_cluster/7004/redis.conf
./redis-server
/usr/local/redis_cluster/7005/redis.conf
bind要设置该服务器实际的ip,不要设置127.0.0.1,不然不同服务器直接集群会找不到其他集群的节点,如果是单台服务器可以配置为127.0.0.1
执行集群创建命令,还是在/usr/local/redis-3.2.4/src目录下:
./redis-trib.rb
create --replicas 1 192.168.1.249:7000 192.168.1.249:7001 127.0.0.1:7002
192.168.1.248:7003 192.168.1.248:7004 192.168.1.248:7005
遇到执行集群创建时报错处理:
/usr/bin/env:
ruby: No such file or directory
报错:/usr/bin/env:
ruby: No such file or directory
因为是执行的ruby的脚本,需要ruby的环境
安装ruby环境
[root@apec-001
src]# yum install ruby
再次执行创建集群命令
[root@apec-001
src]# ./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
/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in
`require': cannot load such file -- redis (LoadError)
from
/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require'
from
./redis-trib.rb:25:in `<main>'
报错cannot load
such file -- redis (LoadError)...
缺少rubygems组件,使用yum安装
[root@apec-001
src]# yum install rubygems
再次执行创建集群命令
[root@apec-001
src]# ./redis-trib.rb create --replicas 1 192.168.1.249:7000 192.168.1.249:7001 127.0.0.1:7002 192.168.1.248:7003 192.168.1.248:7004 192.168.1.248:7005
/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in
`require': cannot load such file -- redis (LoadError)
from
/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require'
from
./redis-trib.rb:25:in `<main>'
缺少redis和ruby的接口,使用gem 安装
gem install redis
再次执行创建集群命令后,根据提示输入yes后集群创建成功
[root@apec-001
src]# ./redis-trib.rb create --replicas 1 192.168.8.21:7000 192.168.8.21:7001
192.168.8.21:7002 192.168.8.21:7003 192.168.8.21:7004 192.168.8.21:7005
6、测试
使用redis-cli命令进入集群环境
./redis-cli -c
-p 7000(此命令只能连接到bind为127.0.0.1)
./redis-cli
-c -h 192.168.1.249 -p 7000 (这个命令可以指定连接到哪个服务器上的redis节点)
如果redis设置密码的话,操作前需要输入auth 密码
集群情况检查
在/usr/local/redis-3.2.4/src目录下执行(设置密码后不能直接执行此命令了,需要先
执行 ./redis-cli
-c -h 192.168.1.248 -p 7003 再auth 密码 再执行cluster nodes
)
./redis-cli
-c -h 192.168.1.248 -p 7003 cluster nodes
或者
./redis-trib.rb
check 192.168.1.248:7003
端口号根据实际的来
效果:
查看集群目前状况:
在/usr/local/redis-3.2.4/src目录下执行
-h可以指定ip,bind为ip的必须输入-h ip
./redis-cli -c -p 7000(这个只能连接bind为127.0.0.1的)
./redis-cli -h 192.168.1.249 -c -p 7000
连接成功后输入cluster info
下图的示例是我加入密码后的,如果没有设置密码是不会要求输入密码的.
测试存值取值:
(下面是别人测试的,所以ip和我的不同)
示例说明了redis会自动跳转到key所在的节点服务器与端口上。
127.0.0.1:7000> set foo bar
-> Redirected to slot [12182] located at 127.0.0.1:7002
OK
127.0.0.1:7002> set hello world
-> Redirected to slot [866] located at 127.0.0.1:7000
OK
127.0.0.1:7000> get foo
-> Redirected to slot [12182] located at 127.0.0.1:7002
"bar"
127.0.0.1:7000> get hello
-> Redirected to slot [866] located at 127.0.0.1:7000
"world"
下图是我测试的,可能是因为6个加点都加了密码,所以跳了好几个节点都输入了密码才保存成功的
随便打开一个 节点的nodes.conf文件内容
6739eece298760a2ee4f81a70e1ae9c2401234e2
192.168.1.248:7005 master - 0 1476758650335 7 connected 6827-10922
4f656a887b12a03e1c64f7585e77556ed06a988d
192.168.1.249:7000 myself,slave 6739eece298760a2ee4f81a70e1ae9c2401234e2 0 0 1
connected
3fa0a3ff79be99c45fa378572a3e5f2ecf8ab520
192.168.1.249:7002 slave ec9fb7461190a04155ad36846aa955c184d8e991 0
1476758648188 5 connected
e35f421a07ab04481ccd41e8c38a2b1e0a85afa9
192.168.1.249:7001 slave c7342df9eb32f0d58b1251e53ca716f85836fa26 0
1476758650230 9 connected
c7342df9eb32f0d58b1251e53ca716f85836fa26
192.168.1.248:7003 master - 0 1476758649212 9 connected 0-6826 10923-12287
ec9fb7461190a04155ad36846aa955c184d8e991
192.168.1.248:7004 master - 0 1476758647268 5 connected 12288-16383
vars currentEpoch 9 lastVoteEpoch 0
集群时密码设置
方法1.集群前设置密码
需要修改gem的redis工具下的一个文件,我这里是默认安装,路径如下:/usr/lib/ruby/gems/1.8/gems/redis-3.2.1/lib/redis/client.rb
,修改内容如下:
方法2.集群后设置密码
对每一个节点的redis.conf修改 requirepass
123456
然后重启即可
我是用的方法2
Linux环境redis集群搭建的更多相关文章
- linux系统——Redis集群搭建(主从+哨兵模式)
趁着这几天刚好有点空,就来写一下redis的集群搭建,我跟大家先说明,本文的redis集群因为linux服务器只是阿里云一台服务器,所以集群是redis启动不同端口,但是也能达到集群的要求.其实不同服 ...
- Linux 下redis 集群搭建练习
Redis集群 学习参考:https://blog.csdn.net/jeffleo/article/details/54848428https://my.oschina.net/iyinghui/b ...
- Redis集群搭建,伪分布式集群,即一台服务器6个redis节点
Redis集群搭建,伪分布式集群,即一台服务器6个redis节点 一.Redis Cluster(Redis集群)简介 集群搭建需要的环境 二.搭建集群 2.1Redis的安装 2.2搭建6台redi ...
- Linux Redis集群搭建与集群客户端实现(Python)
硬件环境 本文适用的硬件环境如下 Linux版本:CentOS release 6.7 (Final) Redis版本: Redis已经成功安装,安装路径为/home/idata/yangfan/lo ...
- Linux Redis集群搭建与集群客户端实现
硬件环境 本文适用的硬件环境如下 Linux版本:CentOS release 6.7 (Final) Redis版本: Redis已经成功安装,安装路径为/home/idata/yangfan/lo ...
- Redis 集群搭建详细指南
先有鸡还是先有蛋? 最近有朋友问了一个问题,说毕业后去大城市还是小城市?去大公司还是小公司?我的回答都是大城市!大公司! 为什么这么说呢,你想一下,无论女孩男孩找朋友都喜欢找个子高胸大的.同样的道理嘛 ...
- 二、redis集群搭建
redis集群搭建 redis3.0后支持集群.集群中应该至少有三个节点,每个节点有一备份节点.需要6台服务器.搭建伪分布式,需要6个redis实例.搭建集群的步骤: 一.安装单机版redis 第一步 ...
- redis集群搭建及注意事项
上一篇:redis的安装及注意事项 这里,在一个Linux虚拟机上搭建6个节点的redis伪集群,思路很简单,一台虚拟机上开启6个redis实例,每个redis实例有自己的端口.这样的话,相当于模拟出 ...
- Docker Swarm redis 集群搭建
Docker Swarm redis 集群搭建 环境1: 系统:Linux Centos 7.4 x64 内核:Linux docker 3.10.0-693.2.2.el7.x86_64 Docke ...
随机推荐
- svm和svr区别--摘自其它博客
学习笔记:SVM柔性边界的补充和SVR(支持向量回归) 作者 小刺猬yyx 关注 2016.08.06 10:31* 字数 1608 阅读 421评论 0喜欢 2 上一个笔记对于SVM不能完美分类的情 ...
- Linux Supervisor的安装与使用入门---Ubuntun
Linux Supervisor的安装与使用入门 在linux或者unix操作系统中,守护进程(Daemon)是一种运行在后台的特殊进程,它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事 ...
- java网络编程三次握手四次挥手
第一次握手:client设置syn=1,随机产生一个序列号seq=x,将数据包发送到server.client进入syn_send状态, 等待server确认. 第二次握手:server查看clien ...
- 日志生成控制文件syslog.conf
1: syslog.conf的介绍 对于不同类型的Unix,标准UnixLog系统的设置,实际上除了一些关键词的不同,系统的syslog.conf格式是相同的.syslog采用可配置的.统一的系统登记 ...
- jquery.query.js 插件(示例及简单应用) —— html之间传值
帮助文档 var url = location.search; > "?action=view§ion=info&id=123&debug&te ...
- Geoffrey Hinton获得IEEE的麦克斯韦奖的颁奖辞
2016年6月IEEE的麦克斯韦奖颁发给了机器学习的领军人物Geoffrey Hinton.颁奖辞十分优雅,同时简洁.凝练地解释了机器学习的最新进展以及神经网络的崛起.我忍不住翻译了一下. 颁奖辞 G ...
- yii2单点接入ucenter(原创)
1.第一步 在中心端添加应用,此处略去,根据官方文档即可实现. 第二步. 用户表如下,基本用原生的用户表即可,取决于你的ucenter主机服务端传送什么用户信息: SET NAMES utf8mb4; ...
- CentOS7.6安装screenfetch
方法1:yum install -y gitcd /usr/local/srcgit clone https://github.com/KittyKatt/screenFetch.gitcp scre ...
- thinkphp5.0配置作用域
作用域 配置参数支持作用域的概念,默认情况下,所有参数都在同一个系统默认作用域下面.如果你的配置参数需要用于不同的项目或者相互隔离,那么就可以使用作用域功能,作用域的作用好比是配置参数的命名空间一样. ...
- 【centos 7】搭FTP服务和web访问
步骤:安装 vsftpd-->增加用户-->配置vsftpd和用户权限 -->配置iptables 安装httpd,开放http访问 /var/tmp/user1下目录 1.安装和用 ...