服务报价 | 域名主机 | 网络营销 | 软件工具| [加入收藏]
 热线电话: #
当前位置: 主页 > 开发教程 > linux教程 >

Redis Sentinel 安装 自启动 Spring连接配置 Centos7

时间:2016-10-21 14:45来源:未知 作者:最模板编辑 点击:
server:192.168.0.117 redis:3.2.3 os: centos 7 安装目录默认: /usr/local PREFIX=/usr/local 一主一从,2个哨兵 一、解压安装包 1. cd /usr/loca/src 2. 复制下载好的 redis-3.2.3.tar.gz到 /usr/loca/src 3. tar -xvzf
server:192.168.0.117
 
redis:3.2.3
 
os: centos 7
 
安装目录默认: /usr/local  PREFIX=/usr/local
 
一主一从,2个哨兵
 
 
 
一、解压安装包
 
    1. cd /usr/loca/src
 
    2. 复制下载好的 redis-3.2.3.tar.gz到 /usr/loca/src
 
    3. tar -xvzf redis-3.2.3.tar.gz -C /usr/local/
 
    4. cd /usr/local/redis-3.2.3
 
    5. make MALLOC=libc  install
 
 
 
二、分别 配置2个redis 和 两个 sentinel配置(这里都安装在一台机器上,实际至少应分别安装在2台机器上)
 
    1. cd /usr/local/redis-3.2.3
 
    2. cp redis.conf redis-7501.conf        (主)
 
    3. cp redis.conf redis-7502.conf        (备)
 
    4. cp sentinel.conf sentinel-26378.conf 
 
    5. cp sentinel.conf sentinel-26379.conf 
 
    6. 创建数据和日志存放目录()
 
        mkdir -pv  /data/redis/logs
 
 
 
三、修改配置内容如下
 
   1. redis-7501.conf
 
       daemonize yes
 
       port 7501
 
       bind 192.168.0.117
 
       protected-mode no
 
       pidfile /var/run/redis_7501.pid
 
       logfile "/data/redis/logs/redis-7501.log"
 
       dir /data/redis/
 
       dbfilename dump-7501.rdb
 
       appendfilename "appendonly-7501.aof"
 
 
 
   2.  redis-7502.conf
 
        同上,修改所有7502->7502,然后再加上
 
        slaveof 192.168.0.117 7501
 
        
 
   3. sentinel-26378.conf
 
       port 26378
 
       protected-mode no
 
       pidfile /var/run/sentinel_26378.pid
 
       sentinel monitor mymaster 192.168.0.117  7501  2
 
       sentinel down-after-milliseconds mymaster 5000
 
       sentinel parallel-syncs mymaster 1
 
       dir "/data/redis/"
 
       logfile "/data/redis/logs/sentinel_26378.log"
 
       daemonize yes
 
      
 
 
 
   4. sentinel-26379.conf
 
       port 26379
 
       protected-mode no
 
      pidfile /var/run/sentinel_26379.pid
 
      sentinel monitor mymaster 192.168.0.117  7501  2                (注意这句定义了master的名字,后面2个配置必须在它后面)
 
       sentinel down-after-milliseconds mymaster 5000                   (5秒master没有响应就认为主观下线默认是30s)
 
       sentinel parallel-syncs mymaster 1
 
       dir "/data/redis/"
 
       logfile "/data/redis/logs/sentinel_26379.log"
 
       daemonize yes
 
 
 
四、启动
 
    1. cd /usr/local/redis-3.2.3
 
    2. redis-server redis-7501.conf  &
 
    3. redis-server redis-7502.conf  &
 
    4. redis-sentinel sentinel-26378.conf  &
 
    5. redis-sentinel sentinel-26379.conf  &
 
 
 
五、检查服务配置
 
   1. 登录哨兵redis
 
      redis-cli -h 192.168.0.117 -p 26378
 
   2. 查看主服务信息
 
    SENTINEL masters
 
   3. 查看从服务信息
 
    SENTINEL slaves mymaster
 
   4. 写入master一条测试key
 
     redis-cli -h 192.168.0.117 -p 7501
 
     set test test
 
  5. 从服务器get测试key  
 
      redis-cli -h 192.168.0.117 -p 7502
 
      get test
 
 
 
六、主从切换测试
 
  1. kill 掉7501的进程
 
  2. 登录哨兵redis查看主服务器是否变化
 
 
 
七、配置redis服务自启动
 
     这里只演示一个redis服务和一个哨兵服务(实际应该是2太机器上,都有这么一组)
 
     1.  vi   /usr/lib/systemd/system/redis7501.service
 
[Unit]
Description=redis - High performance k-v cache
Documentation=http://redis.io/documentation
After=network.target remote-fs.target nss-lookup.target
 
[Service]
Type=forking
PIDFile=/var/run/redis_7501.pid
ExecStart=/usr/local/bin/redis-server /usr/local/redis-3.2.3/redis-7501.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target
    2. 添加开机自启动
 
        systemctl enable redis7501.service
 
    3. vi   /usr/lib/systemd/system/sentinel26378.service
 
Unit]
Description=redis-sentinel - High performance k-v cache's sentinel module
Documentation=http://redis.io/documentation
After=network.target remote-fs.target nss-lookup.target
 
[Service]
Type=forking
PIDFile=/var/run/sentinel_26379.pid
ExecStart=/usr/local/bin/redis-sentinel /usr/local/redis-3.2.3/sentinel-26378.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target
  4. 添加开机自启动
 
      systemctl enable sentinel26378.service
 
 
 
八、客户端连接spring配置修改及测试
 
   1. Spring Jedis 连接配置
 
<bean id="sentinelConfiguration"
class="org.springframework.data.redis.connection.RedisSentinelConfiguration">
<property name="master">
<bean class="org.springframework.data.redis.connection.RedisNode">
<property name="name" value="mymaster"></property>
</bean>
</property>
<property name="sentinels">
<set>
<bean class="org.springframework.data.redis.connection.RedisNode">
<constructor-arg name="host" value="192.168.0.117"></constructor-arg>
<constructor-arg name="port" value="26378"></constructor-arg>
</bean>
<bean class="org.springframework.data.redis.connection.RedisNode">
<constructor-arg name="host" value="192.168.0.117"></constructor-arg>
<constructor-arg name="port" value="26379"></constructor-arg>
</bean>
</set>
</property>
</bean>
<bean id="jedisConnectionFactory"
class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
<constructor-arg name="sentinelConfig" ref="sentinelConfiguration"></constructor-arg>
<constructor-arg name="poolConfig" ref="poolConfig"></constructor-arg>
</bean>
 
<bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate">
<property name="connectionFactory" ref="jedisConnectionFactory" />
<!--<property name="keySerializer">
<bean class="com.kingsum.bigdata.collector.cache.redis.RedisKeySerializer" />
</property>
<property name="valueSerializer">
<bean
class="com.kingsum.bigdata.collector.cache.redis.RedisValueSerializer" />
</property>-->
</bean>
<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"
lazy-init="true">
<property name="maxIdle" value="${redis.maxIdle}" />
<property name="maxTotal" value="${redis.maxActive}" />
<property name="maxWaitMillis" value="${redis.maxWait}" />
</bean>

2. 测试连接性

 

3. kill 掉当前的master 7502

    可以看到,连接自动切换到7501,但是中间大概有间隔10s左右,会仍然访问7501。

Redis Sentinel 安装 自启动 Spring连接配置 Centos7

(责任编辑:最模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容