OneCache-针对redis代理服务
来源:互联网 发布:sql server 教材 编辑:程序博客网 时间:2024/06/06 17:59
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节点一主一从,如下。
安装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.0Port=8221StartTime=2017-7-12 09:26:59UpTime=00:49:39GroupCount=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 NULLgroup3 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 111OK
测试结果与预料的一样。
- OneCache-针对redis代理服务
- Redis 代理服务Twemproxy
- Redis 代理服务Twemproxy
- Redis 代理服务Twemproxy
- TWMPROXY 代理 REDIS 服务
- Redis 代理服务Twemproxy
- Redis 代理服务Twemproxy
- Redis 代理服务Twemproxy
- Redis 代理服务Twemproxy
- Redis 代理服务Twemproxy(redis分布式中间件)
- Twemproxy——针对MemCached与Redis的代理
- Twitter——针对MemCached与Redis的代理
- [转]Twemproxy——针对MemCached与Redis的代理
- Redis/Memcache代理服务Twemproxy简介
- Redis 代理服务Twemproxy--hash
- Twemproxy,Twitter 发布的 Redis 代理服务
- Redis 代理服务Twemproxy(转)
- 引入redis代理是否一定会降低redis服务性能?
- 哈夫曼编码的设计与实现
- javascript中in关键字的作用
- 基于Dragonboard 410c的mic和speaker的loopback调试
- [NOIP模拟][分块]subset
- 微信开发第一步(接入配置)
- OneCache-针对redis代理服务
- Linux信号(二)-- signal()函数
- Java多线程 -- JUC包源码分析5 -- Condition/ArrayBlockingQueue/LinkedBlockingQueue/Deque/PriorityBlockingQueu
- RAID详解[RAID0/RAID1/RAID10/RAID5]
- 基于深度学习的人脸识别技术综述
- Kotlin与Java不兼容的情况
- nodejs入门(08)-全局对象
- yum-下载rpm包
- 删除指定目录下指定的文件(非并发)