玖叶教程网

前端编程开发入门

Twemproxy结合watchdog搭建redis服务器


Redis集群搭建的目的其实也就是集群搭建的目的,所有的集群主要都是为了解决一个问题,横向扩展。使用proxy就可以实现。

源码:https://github.com/twitter/twemproxy

1. 首先,选一台安装了zookeeper的机器。

2. 这里不讲解如何安装zookeeper。将twemproxy-master解压到目录/data下。

3. 修改proxy配置`vi /data/twemproxy-master/conf/twemproxy1-test.xml` 如下图所示:

可见:配置了两个redis端口和zookeeper的host和节点位置。以上配置主要是配置使用md5算法将hash后的值为0到2047的key放到6381上的redis,将2048到4095上的key放到6382

4. zookeeper_redis_path 该配置会在zookeeper下的该目录下生成一个目录名字为172.16.**.228:22121的节点:

使用zkCli.sh -server 172.16.***.239:2181 登录到239ip的zk上,然后使用ls命令可以查看各个节点的目录信息,使用命令: ls /redis_dev/cluster/ebook可以看到:

[172.16.**.228:22121]

这是redis注册在zookeeper的ip和端口号,这是为了让客户端访问redis的时候,可以直接访问proxy的代理。

5. 安装Redis-zoo-watchdog,解压到/data/redis-zoo-watchdog目录,解压后内容如下

6. 执行安装命令:`/data/redis-zoo-watchdog/redis-zoo-watchdog.elf -f /data/redis-zoo-watchdog/zoo-watchdog-test.conf -dc 172.16.10.228:6381 /redis_dev/cluster/ebook/redis-001

/data/redis-zoo-watchdog/redis-zoo-watchdog.elf -f /data/redis-zoo-watchdog/zoo-watchdog-test.conf -dc 172.16.10.228:6382 /redis_dev/cluster/ebook/redis-002`。这里配置了两个redis实例。watchdog配置如下:

cat zoo-watchdog-dev.conf

# zookeeper servers list to connect

# zkServersList = "host:port,host:port,...,host:port"

zkServersList = 172.16.10.163:2181,172.16.10.96:2181

# log level (default to DEBUG)

logLevel = DEBUG

# log file

logFile = ./zoo-watchdog-dev.log

7. 继续执行命令,`/data/twemproxy-master/src/nutcracker -c /data/twemproxy-master/conf/twemproxy1-test.yml -o /data/twemproxy-master/logs/twemproxy-test.log -d -p /var/run/twemproxy-test.pid`(这里是一条命令)。这里解压了2个redis,redis里面的配置请看最后的github链接。

8. 此时我们可以去zookeeper看节点有没有注册上去ls /redis_dev/cluster/ebook

9. 通过proxy代理链接redis命令:

redis-cli -h 172.16.10.228 -p 22121

redis虽然有两个实例,并且如果两个key分别在两个实例上,但是 通过一个proxy客户端就可以连接,如果不通过proxy连接那么必须登录到两个redis客户端上面才可以看到两个key。

效果如下:

解析:

链接redis-cli -p 6381的时候,第一个key有值第二个key没有值

链接redis-cli -p 6382的时候,第一个key没有值第二个key有值

链接redis-cli -h 172.**.**.228 -p 22121proxy代理的时候,两个key都有值,这就是使用twemproxy的效果,分散不同的key到不同的机器上。值得注意的一点是,有些命令像查询所有key如 keys * 在twemproxy中是不支持的。

安装包 地址:https://github.com/tengqingya/redis_install.git

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言