redis主从+哨兵模式只解决了读的分布式操作,大大提高了性能;但是写操作,只有主主机器才能进行,从机器无法进行写操作。此时,Twemproxy也就出现了。

这个模式单纯的安装有些复杂,需要引入很多的辅助工具:

autoconf:下载地址 http://ftp.gnu.org/gnu/autoconf/

Automake  :下载地址http://ftp.gnu.org/gnu/automake/

libtool:下载地址 http://ftp.gnu.org/gnu/libtool/

twemproxy下载地址:https://codeload.github.com/twitter/twemproxy/zip/master

记住,都要高版本的,版本太旧,容易出问题》

安装步骤,我是根据尚学堂视频进行操作的,大体流程如下:

这里的安装目录都在usr目录下,这样可以偷懒不配置环境变量,如果更改安装目录,那你自己去配置环境变量,我这里找到一篇微博,此人是自己配置环境变量的,

可以参考 : http://blog.csdn.net/kk185800961/article/details/53364334

接下来我将逐步分解过程:

1、首先将安装好的压缩包全部上传到linux服务器,我这里有3台虚拟机,redis服务分别部署在这3台不同的虚拟机上面(如果不会,请参考我的《Redis的安装、服务配置》一文);

而twemproxy代理我仅仅部署在CentOS1(192.168.238.128)上面,文件传输路径为/home/tool/sourceDir目录下,并解压

安装是要有先后顺序的,依次安装autoconf、autoMake、libtool、twemproxy-master;

进入/home/tool/sourceDir目录下,分别开始安装:

安装autoconf:

[root@server autoconf-2.69]# cd autoconf-2.69
[root@server autoconf-2.69]# ./configure --prefix=/usr
[root@server autoconf-2.69]# make && make install

安装automake:

[root@server automake-1.15.]# cd automake-1.15.
[root@server automake-1.15.]# ./configure --prefix=/usr
[root@serverautomake-1.15.]# make && make install

安装libtool:

[root@server libtool-2.4.]# cd libtool-2.4.
[root@server libtool-2.4.]# ./configure --prefix=/usr
[root@server libtool-2.4.]# make && make install

安装twemproxy:

[root@server twemproxy-master]# cd twemproxy
[root@server twemproxy-master]# aclocal
[root@server twemproxy-master]# autoconf
[root@server twemproxy-master]# mkdir config
[root@server twemproxy-master]# autoheader
[root@server twemproxy-master]# libtoolize
[root@server twemproxy-master]# automake -a
[root@server twemproxy-master]# ./configure
[root@server twemproxy-master]# make
[root@server twemproxy-master]# make install

# 配置文件 nutcracker.yml(我的都是真实IP)(注意:此文件必须要找到安装目录下的nutcracker命令,放在此命令同目录的conf文件夹下

具体配置信息:

alpha:
     listen: 192.168.238.128:22121
    hash: fnv1a_64
    distribution: ketama
    auto_eject_hosts: true
   redis: true
   server_retry_timeout: 2000
   server_failure_limit: 1
   servers:
        - 192.168.238.128:6379:1
        - 192.168.238.131:6379:1
        - 192.168.238.132:6379:1

测试配置文件:

首先需要将redis的服务全部启动,然后启动twemproxy

接下来进入代理模式中:

OK,配置完成,接下来可以进行你需要的操作了。

再来说说问题:

问题实在太多了,举几个最容易发现的问题吧。

1、在代理中,keys * 不可执行

2、对字符串操作,当CentOS1、CentOS3、CentOS4之前就有相同的key时候,通过代理拿到的值永远都是本机的(CentOS1),其余的拿不到

3、对无序集合也是一样的,CentOS4的值是:

  

CentOS3的值是:

通过代理拿到的值,不知道怎么回事,一直都是CentOS4里面的,CentOS3的值一直拿不到,搞不懂是什么原理

 以上说的情况,都是redis服务之前就有这些键值情况下出现的,如果全部通过Twemproxy进行设置,然后在通过Twemproxy进行拿值,是不会出现这样的问题的。

还是一点也很要命,通过Twemproxy设置的值,各个redis服务是不同步的,只要某一台redis服务宕机了,里面的数据也就拿不到了。

当然,以上问题,肯定是有解决办法的,以后会继续学习和完善这些问题。

redis代理集群(Twemproxy)(1)的更多相关文章

  1. Redis分布式集群几点说道

    原文地址:http://www.cnblogs.com/verrion/p/redis_structure_type_selection.html  Redis分布式集群几点说道 Redis数据量日益 ...

  2. 【Redis】Redis分布式集群几点说道

    Redis数据量日益增大,使用的公司越来越多,不仅用于做缓存,同时趋向于存储这一块,这样必促使集群的发展,各个公司也在收集适合自己的集群方案,目前行业用的比较多的是下面几种集群架构,大部分都是采用分片 ...

  3. Redis Cluster集群知识学习总结

    Redis集群解决方案有两个: 1)  Twemproxy: 这是Twitter推出的解决方案,简单的说就是上层加个代理负责分发,属于client端集群方案,目前很多应用者都在采用的解决方案.Twem ...

  4. Redis cluster集群:原理及搭建

    Redis cluster集群:原理及搭建 2018年03月19日 16:00:55 阅读数:6120 1.为什么使用redis? redis是一种典型的no-sql 即非关系数据库 像python的 ...

  5. 15、Redis的集群

     写在前面的话:读书破万卷,编码如有神 -------------------------------------------------------------------------------- ...

  6. Redis Cluster集群搭建<原>

    一.环境配置 一台window 7上安装虚拟机,虚拟机中安装的是centos系统. 二.目标     Redis集群搭建的方式有多种,根据集群逻辑的位置,大致可以分为三大类:基于客户端分片的Redis ...

  7. redis集群与分片(1)-redis服务器集群、客户端分片

    下面是来自知乎大神的一段说明,个人觉得非常清晰,就收藏了. 为什么集群? 通常,为了提高网站响应速度,总是把热点数据保存在内存中而不是直接从后端数据库中读取.Redis是一个很好的Cache工具.大型 ...

  8. Redis缓存集群方案

    由于单台Redis服务器的内存管理能力有限,使用过大内存的Redis又会使得服务器的性能急剧下降,一旦服务器发生故障将会影响更大范围业务,而Redis 3.0 beta1支持的集群功能还不适合生产环境 ...

  9. Redis Cluster 集群使用(3)

    简介 Redis3.0版本之前,可以通过Redis Sentinel(哨兵)来实现高可用(HA),从3.0版本之后,官方推出了Redis Cluster,它的主要用途是实现数据分片(Data Shar ...

随机推荐

  1. [Android基础]Android四大组件之BroadCast

    BroadCast的定义: 广播是一种订阅--通知 事件,广播接收者向Android系统 register (订阅广播),广播发送者向Adnroid系统 sendBroadCast(发送广播),然后A ...

  2. hdu1494 跑跑卡丁车(动态规划)

    Description 跑跑卡丁车是时下一款流行的网络休闲游戏,你可以在这虚拟的世界里体验驾驶的乐趣.这款游戏的特别之处是你可以通过漂移来获得一种 加速卡,用这种加速卡可以在有限的时间里提高你的速度. ...

  3. js中把字符串转换成number格式方法

    方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有 ...

  4. Exploring refit, an automatic type-safe REST library for .NET Standard

    自动类型安全的.NET标准REST库refit   在SCOTT HANSELMAN 博客上看到一个好东西<Exploring refit, an automatic type-safe RES ...

  5. NetCore1.1+Linux

    NetCore1.1+Linux部署初体验   1.环境准备 Centaos7+Win10 虚拟机 Win10安装VS2017 https://www.asp.net/downloads注意勾选下.N ...

  6. Spring的DI(Dependency Injection)

    写在之前,作为正在学习的程序员,对于Spring理解比较差,给两个简单的定义大家看一下. 控制反转(Inversion of Control),是一个重要的面向对象编程的法则来削减计算机程序的耦合问题 ...

  7. C++拾遗(七)——关联容器

    关联容器(Associative containers)支持通过键来高效地查找和读取元素.两个基本的关联容器类型是 map 和set.map 的元素以键-值(key-value)对的形式组织:键用作元 ...

  8. Windows系统下查看文件编码类型

    这是一个程序员的最基本的技能,原谅我到现在才去了解 以前只知道window操作系统下文件大部分默认编码是ANSI,中文版是GBK编码 如果想要查看或者修改文件编码的话有两种方式 一:用记事本打开文件, ...

  9. win7下一直试用Beyond Compare 4

    找到目录C:\Users\用户名\AppData\Roaming\BeyondCompare,将这个目录删除,重启compare即可.

  10. Write Once, Run Anywhere:这不是Java,这是C#

    注意,本文目的并非挑起语言之争.虽然有为C#平反之意,但主要还是介绍Mono并进行简单的测试. UPDATED: 25th August 2012 更新了「Compile Once, Run Anyw ...