Home  >  Article  >  Database  >  关于twemproxy和redis分布式

关于twemproxy和redis分布式

WBOY
WBOYOriginal
2016-06-07 17:45:251022browse

为什么要使用twemproxy 出于两点原因: 1 redis是单线程实例,若要获得多核的好处,只能实现多个实例,实例之间不能共享数据,只能sharding 2 若数据量太大,则必须分布式部署redis,使用sharding 两个原因其实可以归为一个,如何分布式部署redis。 而redis

为什么要使用twemproxy

出于两点原因:

1 redis是单线程实例,若要获得多核的好处,只能实现多个实例,香港服务器,实例之间不能共享数据,只能sharding

2 若数据量太大,则必须分布式部署redis,使用sharding

两个原因其实可以归为一个,如何分布式部署redis。 而redis本身并不支持分布式部署,只支持master-slave,香港服务器,若客户端直接操作redis的话,就必须在应用层编写sharding和节点监控的代码。

如果使用twemproxy作为代理,客户端不直接操作redis只是访问rwemproxy,sharding和节点监控以及其他一些麻烦的工作rwemproxy都帮我们做好了,美国服务器,只需要配置即可。

项目应用的时候,我们可能会把redis作为数据存储也可能会拿来做缓存,第一种情况我们需要在配置中做静态映射,第二种情况我们允许自动卸载失败节点,过一段时间重试,这时候数据可能会被写到另外一个节点,导致弱一致性。

注意的地方:1 twemproxy也是单线程实例,在生产环境可能需要启动多个实例以发挥多核的能力。

      2不支持除mget,del之外的redis批处理命令,如取多个集合交集等等

          3不支持脚本eval

      4twemproxy不能够拿从节点作为替代方案

 

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn