zoukankan      html  css  js  c++  java
  • 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

    哨兵1192.168.169.135:26301

    哨兵2192.168.169.135:26302

    哨兵3192.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-serverredis-sentinelredis-cliredis-benchmarkredis-check-rdbredis-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.confredis-6302.confredis-6303.conf

    sentinel-26301.confsentinel-26302.confsentinel-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

     

    由于此时还未配置masterslave,所以现在看不到具体一些连接参数

    退出客户端命令:exit

     

    1.7. 配置masterslave

    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. 手动杀死master6301进程

    19、现在作为主服务器(master)的是6301端口,现在杀死该进程,查看从服务器是否会转换成master,以确保数据不会丢失,服务仍正常运转

    查看进程并杀死进程:

    ps -ef|grep redis

    kill -9 78633

     

    20、查看日志:

    tail -f sentinel-26301.log

     

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

     

    1.11. 重启6301redis服务

    ./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.jarcommons-pool2-2.4.2.jar),否则会报错

    依赖包下载地址:https://pan.baidu.com/s/1lrxhnfTnaNwYTCgKFyazgw

    密码:3v5j

     

    具体String,  List,  Hash,  Set,  SortedSet这五种数据结构相关操作命令及代码可自行百度,此处不做赘述

  • 相关阅读:
    ThinkPHP5.1 行为与钩子
    PHP 商品秒杀抢购业务流程
    MySQL 读写分离
    Redis 管道
    Redis 事务
    Redis 锁机制
    ThinkPHP 实现队列
    MySQL 存储引擎
    分布式唯一ID分配问题
    Lightscape
  • 原文地址:https://www.cnblogs.com/qingqing74647464/p/8608568.html
Copyright © 2011-2022 走看看