redis3.2.11单机多实例集群部署并测试连接情况
配置准备:
|
redis3.2.11安装配置规划 |
|
|
机器 |
192.168.169.135(本机虚拟机) |
|
系统 |
Red Hat Enterprise Linux Server release 6.4 (Santiago) |
|
系统内核 |
2.6.32-358.el6.x86_64 |
|
安装包 |
redis-3.2.11.tar.gz |
|
路径 |
Tar包路径:/home/usird/redis-3.2.11.tar.gz 解压后路径:/home/usird/redis-3.2.11 放置配置文件路径:/home/usird/redis_group(为方便管理,故而将所需配置文件及执行文件统一放在此文件夹) |
(无需ruby环境,无需其他文档所说的各种依赖包)
本文档采用主从复制方式去搭建集群,具体情况是:
服务器:192.168.169.135
主服务器(master):192.168.169.135:6301
从服务器(slave1):192.168.169.135:6302
从服务器(slave2):192.168.169.135:6303
哨兵1:192.168.169.135:26301
哨兵2:192.168.169.135:26302
哨兵3:192.168.169.135:26303
redis3.2.11安装包提供:
云盘网址:https://pan.baidu.com/s/1xf6PTJedUWlf4AwEH4UDSg
提取密码:15mp
1. 安装步骤
1.1. 新建用户
1、为了统一管理redis数据库,使用root用户新建管理用户usird
新建用户:adduser usird

2、修改用户密码,进行安全考虑
修改密码:passwd usird 输入密码为usird

3、切换到usird用户,正式进行redis数据库集群的搭建
切换usird用户:su - usird

1.2. 下载上传redis-3.2.11.tar.gz包
4、下载redis-3.2.11.tar.gz包到本地
云盘网址:https://pan.baidu.com/s/1xf6PTJedUWlf4AwEH4UDSg
提取密码:15mp
5、进入到usird用户主目录
进入主目录:cd

6、利用xshell工具上传刚刚下载的tar包到服务器

1.3. 解压编译redis-3.2.11.tar.gz包
7、解压已上传的tar包
解压:tar -zxvf redis-3.2.11.tar.gz

8、删除redis的tar包,减轻服务器压力,如果磁盘和内存空间足够大,可以不删除,跳过这一步
删除tar包: rm -rf redis-3.2.11.tar.gz

9、进入解压后的redis-3.2.11目录执行make命令
进入解压后路径:cd redis-3.2.11/

执行编译命令:make

Make成功之后,在src目录中会出现redis-server、redis-sentinel、redis-cli、redis-benchmark、redis-check-rdb、 redis-check-aof等可执行文件

10、为了方便后期统一管理,现在在usird用户主目录下面新建redis_group文件夹,将redis集群相关配置文件和执行文件放置在一起
1.4. 新建文件夹统一管理
新建文件夹:mkdir redis_group

复制文件到文件夹(依次执行下列命令):
cd redis-3.2.11
cp redis.conf ../redis_group/
cd src/
cp redis-server redis-cli redis-sentinel ../../redis_group/
cd ../../redis_group/
ls

1.5. 修改redis.conf配置文件
11、模拟节点为3,哨兵节点为3,需3份redis.conf配置文件,3份sentinel.conf配置文件:
redis-6301.conf、redis-6302.conf、redis-6303.conf
sentinel-26301.conf、sentinel-26302.conf、sentinel-26303.conf
依次执行命令:
mv redis.conf redis-6301.conf
cp redis-6301.conf redis-6302.conf
cp redis-6301.conf redis-6303.conf
touch sentinel-26301.conf
touch sentinel-26302.conf
touch sentinel-26303.conf

12、修改redis-6301.conf配置文件,修改以下参数:

执行命令:vim redis-6301.conf






redis-6302.conf、redis-6303.conf修改参数同上面,此处不进行赘述
1.6. 启动redis服务
13、启动redis服务并查看进程:
分别执行以下命令:
./redis-server redis-6301.conf
./redis-server redis-6302.conf
./redis-server redis-6303.conf
ps -ef|grep redis

14、进入redis客户端:
依次执行以下命令:
./redis-cli -p 6301
./redis-cli -p 6302
./redis-cli -p 6303

由于此时还未配置master和slave,所以现在看不到具体一些连接参数
退出客户端命令:exit
1.7. 配置master及slave
15、配置slave,在6302和6303客户端分别执行:
SLAVEOF 127.0.0.1 6301

16、再次进入redis客户端,查看master和slave信息:
1)
./redis-cli -p 6301
info
exit

2)
./redis-cli -p 6302
info
exit

3)
./redis-cli -p 6303
info
exit

1.8. 配置哨兵文件
17、配置哨兵文件,修改sentinel-26301.conf配置文件,添加下面参数:
#端口
port 26301
# 使用宿主进程启动
daemonize yes
# 启动目录
dir "/home/usird/redis_group"
# 日期文件路径
logfile "/home/usird/redis_group/sentinel-26301.log"
sentinel monitor mymaster 127.0.0.1 6301 1


sentinel-26302.conf、sentinel-26303.conf修改参数同上面,此处不进行赘述(修改标蓝端口)
1.9. 启动哨兵
18、启动哨兵并查看进程,执行命令:
./redis-sentinel sentinel-26301.conf
./redis-sentinel sentinel-26302.conf
./redis-sentinel sentinel-26303.conf
ps -ef|grep redis

1.10. 手动杀死master:6301进程
19、现在作为主服务器(master)的是6301端口,现在杀死该进程,查看从服务器是否会转换成master,以确保数据不会丢失,服务仍正常运转
查看进程并杀死进程:
ps -ef|grep redis
kill -9 78633

20、查看日志:
tail -f sentinel-26301.log

由此我们能看到Slave:6302:自动转换成了master,来进入客户端查看一下


1.11. 重启6301:redis服务
./redis-server redis-6301.conf

查看日志:
tail -f sentinel-26301.log

1.12. Master插入key-vlaue
依次执行:
./redis-cli -p 6302
set hello world
exit

1.13. Slave读取数据
依次执行:
1)
./redis-cli -p 6301
get hello
exit

2)
./redis-cli -p 6303
get hello
exit
至此,redis集群搭建完毕,测试master与slave关系完毕,输入插入读取完毕
1.14. Eclipse连接redis数据库
21、关闭Linux服务器防火墙(或指定开放端口)
22、usird用户修改配置文件,redis-6302.conf
依次执行:
1)cd /home/usird/redis_group
2)vim redis-6302.conf
注释:127.0.0.1行,即 #127.0.0.1
修改protected-mode参数,即protected-mode no

然后保存文件,重启6302redis端口服务
23、打开eclipse,新建project----jedistest

在jedistest项目src目录下新建一个class----demo

代码:
|
package jedistest; import redis.clients.jedis.Jedis; public class demo { public static void main(String[] args) { // 测试是否能成功连接上Linux服务器上面的redis数据库 Jedis jedis = new Jedis("192.168.169.135", 6302); jedis.ping(); System.out.println("Server is running: " + jedis.ping()); //新插入的数据 jedis.set("hello1", "world1"); String value = jedis.get("hello1"); System.out.println("hello1的value值为:"+value); //linux服务器上面新建的key对应value System.out.println("hello的value值为:"+jedis.get("hello")); } } |
Eclipse能成功连接Linux服务器上面的redis数据库,并插入数据、读取数据,返回值为

注意在贴入代码时,需要导入两个jar包(jedis-2.4.1.jar、commons-pool2-2.4.2.jar),否则会报错
依赖包下载地址:https://pan.baidu.com/s/1lrxhnfTnaNwYTCgKFyazgw
密码:3v5j
具体String, List, Hash, Set, SortedSet这五种数据结构相关操作命令及代码可自行百度,此处不做赘述
redis3.2.11单机多实例集群部署并测试连接情况的更多相关文章
- redis3.2.11多机多实例集群部署及测试连接情况
机器配置 redis3.2.11安装配置规划 机器 192.168.169.136(本机虚拟机1) 192.168.169.137(本机虚拟机2) 系统 Red Hat Enterprise Linu ...
- redis3.0集群部署和测试
redis3.0集群部署和测试 环境介绍 两台Centos7的虚拟机模拟6个节点,A台3个master节点,B台3个slave节点A地址:172.16.81.140B地址:172.16.81.141r ...
- 集群部署及测试SolrCloud-5
SolrCloud-5.2.1 集群部署及测试 一. 说明 Solr5内置了Jetty服务,所以不用安装部署到Tomcat了,网上部署Tomcat的资料太泛滥了. 部署前的准备工作: 1. 将各主 ...
- 消息中间件kafka+zookeeper集群部署、测试与应用
业务系统中,通常会遇到这些场景:A系统向B系统主动推送一个处理请求:A系统向B系统发送一个业务处理请求,因为某些原因(断电.宕机..),B业务系统挂机了,A系统发起的请求处理失败:前端应用并发量过大, ...
- Windows下ELK环境搭建(单机多节点集群部署)
1.背景 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时 ...
- Elasticsearch单机双节点集群部署实战
一.安装第一个ElasticSearch(主节点) 1.创建es用户,启动es不能使用root用户 useradd es passwd es12 root用户进入/home/es目录下 2.获取Ela ...
- SolrCloud-5.2.1 集群部署及测试
一. 说明 Solr5内置了Jetty服务,所以不用安装部署到Tomcat了,网上部署Tomcat的资料太泛滥了. 部署前的准备工作: 1. 将各主机IP配置为静态IP(保证各主机可以正常通信,为避免 ...
- Redis3.0.1 Stable版本的集群部署(Mac)
本文档基于如下原始文档(CentOS)创建: http://blog.csdn.net/xu470438000/article/details/42971091 修改了一些路径的错误,补全了一些命令执 ...
- CentOS7下搭建FastDfs(V5.11)+Keepalived分布式集群部署
FastDfs介绍 http://kb.cnblogs.com/page/82280/ 1.准备 系统 CentOS7 最小化安装. #VIP虚拟IP 10.1.6.218 #Keepalived 1 ...
随机推荐
- Atitit.获得向上向下左的右的邻居的方法 软键盘的设计..
Atitit.获得向上向下左的右的邻居的方法 软键盘的设计.. Left right可以直接使用next prev.. Up down可以使用pix 判断...获得next element的posit ...
- SDRAM驱动篇之简易SDRAM控制器的verilog代码实现
在Kevin写的上一篇博文<SDRAM理论篇之基础知识及操作时序>中,已经把SDRAM工作的基本原理和SDRAM初始化.读.写及自动刷新操作的时序讲清楚了,在这一片博文中,Kevin来根据 ...
- Android中makfile的随记
什么是makefile?也许非常多Winodws的程序员都不知道这个东西,由于那些Windows的IDE都为你做了这个工作,但我认为要作一个好的Android底层程序员. makefile还是要懂. ...
- openWRT自学---基于backfire版本,分析其Make命令的执行过程和各阶段的主要产物
准备阶段:从SVN下载backfire的编译环境(位置是:svn co svn://svn.openwrt.org/openwrt/branches/backfire),然后按照openWRT的要求, ...
- \sum的写法
\sum默认上下标是写在右上角和右下角的.在独立公式中,则是写在上面和下面的.对于行内公式,我们也可以强制用\limits让其上下表标出现在上面和下面.Note:\sum\nolimits的作用相当于 ...
- Win从环境变量开启MySQL之旅
Win通过环境变量开启MySQL之旅 这篇文章主要介绍了Windows7下如何在命令行使用MySQL的相关资料,需要的朋友可以参考下 我在Win7下安装的MySQL版本是mysql-5.0.22-wi ...
- android http通信之HttpURLConnection post乱码问题
楼主前段时间做android项目,用到http通信,于是楼主本着练手的态度,自己写httpUrlConnection通信过程,然后在测试的时候,发现使用post请求一直乱码,这时候楼主开始看发送的数据 ...
- Easyui Datagrid扩展fixRownumber方法
首先,从datagrid生成的代码,我们可以发现,在rowNumber上都有特定的class标记,datagrid-cell-rownumber,datagrid-header-rownumber. ...
- Linux Linux程序练习二
/* 编写一个程序读取a.txt文件,将文件内容数字从小到大排序,并将排序结果写入b.txt. */ #include <stdio.h> #include <stdlib.h> ...
- awk合并两个文件并显示
问题: 答案: