OneCache-针对redis代理服务

OneCache-针对redis代理服务

OneCache是一个基于Redis协议的分布式缓存中间件,使用中间层将多个Redis实例组成一个分布式的缓存集群。并且引入Redis组的概念,可以将Redis的Master和Slave分到同一个组里,进行自动故障切换和流理分担。

1.下载OneCache

下载http://www.onexsoft.com/software/onecache_rhel5_linux64.tar.gz
完成后进行上传解压安装。

2.安装、修改配置文件

接下来我们先来了解下需要搭建后的实际效果。我们使用5个redis节点进行分布式的搭建,将5个redis节点分为4个组,其中group1中有2个redis节点一主一从,如下。

ip端口主从
group1172.21.3.195:7000
group1172.21.3.195:7004
group2172.21.3.195:7001
group3172.21.3.195:7002
group4172.21.3.195:7003

安装redis可以参考我之前的redis集群安装配置前面的第一小节中redis安装配置,在此就不做详细说明了。
需要注意各个节点的端口以及从节点配置主从

#从节点上172.21.3.195 7004上修改配置文件redis.conf中配置
slaveof 172.21.3.195 7000

修改onecache.xml配置文件

<onecache port="8221" thread_num="15" hash_value_max="80"  >
 <vip if_alias_name="eml:0" vip_address="172.21.3.195" enable="0"></vip>
 <group name="group1" hash_min="0" hash_max="20">
        <host host_name="host1" ip="172.21.3.195" port="7000" master="1"></host>
        <host host_name="host1" ip="172.21.3.195" port="7004" master="0"></host>
 </group>
 <group name="group2" hash_min="21" hash_max="40">
        <host host_name="host1" ip="172.21.3.195" port="7001" master="1"></host>
 </group>
 <group name="group3" hash_min="41" hash_max="60">
        <host host_name="host1" ip="172.21.3.195" port="7002" master="1"></host>
 </group>
 <group name="group4" hash_min="61" hash_max="79">
        <host host_name="host1" ip="172.21.3.195" port="7003" master="1"></host>
 </group>
</onecache>
3.启动服务
  • 启动各个redis节点
    bash
    # /usr/local/redis-0/bin/redis-server /usr/local/redis-0/conf/redis-7000.conf
    # /usr/local/redis-1/bin/redis-server /usr/local/redis-1/conf/redis-7001.conf
    # /usr/local/redis-2/bin/redis-server /usr/local/redis-2/conf/redis-7002.conf
    # /usr/local/redis-3/bin/redis-server /usr/local/redis-3/conf/redis-7003.conf
    # /usr/local/redis-4/bin/redis-server /usr/local/redis-4/conf/redis-7004.conf
  • 启动OneCache

    
    # ./onecache.bin 
    
    [2017-07-12 09:26:59] Message: Create the thread pool(size=15)...
    [2017-07-12 09:26:59] Message: Thread pool created
    [2017-07-12 09:26:59] Message: Connect to redis server(172.21.3.195:7000)...
    [2017-07-12 09:26:59] Message: Connected. conn pool size=50
    [2017-07-12 09:26:59] Message: Connect to redis server(172.21.3.195:7004)...
    [2017-07-12 09:26:59] Message: Connected. conn pool size=50
    [2017-07-12 09:26:59] Message: Connect to redis server(172.21.3.195:7001)...
    [2017-07-12 09:26:59] Message: Connected. conn pool size=50
    [2017-07-12 09:26:59] Message: Connect to redis server(172.21.3.195:7002)...
    [2017-07-12 09:26:59] Message: Connected. conn pool size=50
    [2017-07-12 09:26:59] Message: Connect to redis server(172.21.3.195:7003)...
    [2017-07-12 09:26:59] Message: Connected. conn pool size=50
    [2017-07-12 09:26:59] Message: Start the OneCache on port 8221. PID=2680
    

    查看测试
    “`bash

    /usr/local/redis-0/bin/redis-cli -h 172.21.3.195 -p 8221

    172.21.3.195:8221> set abc 123
    OK
    172.21.3.195:8221> set 999 999
    OK
    172.21.3.195:8221> set qqq 999
    OK
    172.21.3.195:8221> status
    [OneCache]
    Version=4.0.0.0
    Port=8221
    StartTime=2017-7-12 09:26:59
    UpTime=00:06:33
    GroupCount=4

[Backends]
[GROUP] [IP] [PORT] [CONNPOOL] [MASTER] [ACTIVE] [REQUESTS] [RECV SIZE] [SEND SIZE] [SEND>1KB] [SEND>1MB] [COMMANDS]
group1 172.21.3.195 7000 50 Y Y 1 0.02KB 0.01KB 0 0 [GET]:1
group1 172.21.3.195 7004 50 N Y 0 0KB 0KB 0 0 NULL
group2 172.21.3.195 7001 50 Y Y 0 0KB 0KB 0 0 NULL
group3 172.21.3.195 7002 50 Y Y 1 0.02KB 0.01KB 0 0 [GET]:1
group4 172.21.3.195 7003 50 Y Y 0 0KB 0KB 0 0 NULL

[Clients]
[NUM] [IP] [CONNECTS] [REQUESTS] [RECV>1KB] [RECV>1MB] [LAST CONNECT] [COMMANDS]
1 172.21.3.195 0 3 0 0 1970-1-1 08:00:00 [GET]:2
“`
目前 OneCache 的默认策略是:master(s)负责写操作,slaver(s)负责读操作,采用均匀分配的方式去处理每个请求,所以也降低了单个节
点的负载率。OneCache 能识别非活动的节点,从而跳过该节点,并能够正确寻找下一个可用的节点,如无节点可用,OneCache 将会返回错
误的答复。

下面我们来测试下。先关闭group1中的主节点,在来从节点是否可用

# /usr/local/redis-0/bin/redis-cli -h 172.21.3.195 -p 7000  shutdown
#  /usr/local/redis-0/bin/redis-cli -h 172.21.3.195 -p 8221
 172.21.3.195:8221> status
[OneCache]
Version=4.0.0.0
Port=8221
StartTime=2017-7-12 09:26:59
UpTime=00:49:39
GroupCount=4

[Backends]
[GROUP]                [IP]    [PORT] [CONNPOOL] [MASTER] [ACTIVE]      [REQUESTS]        [RECV SIZE]       [SEND SIZE]    [SEND>1KB]  [SEND>1MB]   [COMMANDS]
group1         172.21.3.195      7000         50     Y       N                   6             0.15KB            0.05KB             0           0   [GET]:4    [SET]:2 
group1         172.21.3.195      7004         50     N       Y                   1             0.02KB            0.01KB             0           0   [GET]:1 
group2         172.21.3.195      7001         50     Y       Y                   0                0KB               0KB             0           0   NULL
group3         172.21.3.195      7002         50     Y       Y                   1             0.02KB            0.01KB             0           0   [GET]:1 
group4         172.21.3.195      7003         50     Y       Y                   1             0.03KB            0.00KB             0           0   [SET]:1 

[Clients]
[NUM]               [IP]   [CONNECTS]  [REQUESTS]  [RECV>1KB]  [RECV>1MB]      [LAST CONNECT]   [COMMANDS]
1           172.21.3.195            0          17           5           0   1970-1-1 08:00:00   [GET]:6    [SET]:4 
172.21.3.195:8221> get qqq
"12345"
172.21.3.195:8221> set qqq 111
OK

测试结果与预料的一样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值