Articles of redis

Redis:故障切换失败 – 哨兵不能select新的主节点

我已经在一个简单的主从设置中的四个不同的虚拟机上设置了四个服务器和哨兵实例。 密钥复制工作正常,所有redis节点相互识别(我指的是known-sentinel和known-slave选项)。 当我试图模拟失败时出现问题。 哨兵只是不断地告诉他们不能选举一个新的主人( 故障转移 – 中止 – 不是选举 ): 12481:X 22 Jun 17:20:05.761 # <__IP1__>:51002 voted for a3ba8d8cd0c15c8b186b44ba529b83d3a8424a42 27 12481:X 22 Jun 17:20:14.140 # -sdown master mymaster <__IP2__> 6379 12481:X 22 Jun 17:20:14.140 # -odown master mymaster <__IP2__> 6379 12481:X 22 Jun 17:20:16.567 # -failover-abort-not-elected master mymaster <__IP2__> 6379 另一个奇怪的事情是,当我在redis-cli查询标记的状态时,我得到的可用标记实例的数量比实际计数要大(当然,不能大于4(正确?))。 $ redis-cli -p 51001 […]

AWS Elasticache Redis实施上的缺省生存时间(TTL)

什么是AWS Elasticache Redis实施中的默认生存时间(TTL)? 我想我可以从redis-cli中得到它,但看起来它不支持redis中通常提供的CONFIG GET *语法。 它也可能只是简单地使用一个LRU策略到期,但我没有发现在文档中陈述。

我需要redis高可用性统计信息

有没有人有任何真实的生活统计,他们可以保持一个Redis实例运行多久? 我知道我可以让Redis Sentinel给我失败的function,但应该是我的期望? 单个Redis实例24×7? Redis Sentinel 24x7x365设置失败?

Redis和Postgresql在同一台机器上:vm.overcommit_memory =?

在Redis文档中,它明确指出vm.overcommit_memory应该设置为1以确保后台保存更新失败: http : //redis.io/topics/faq 然而 在postgresql文档中,它说, vm.overcommit_memory应该设置为2以避免post master进程不会被oom杀手所杀: http : //www.postgresql.org/docs/9.3/static/kernel-resources。 HTML 现在,这是有矛盾的。 我该怎么办? 我的redis db有20GB的限制。 该服务器有252GB的物理内存。 Postgresql很less使用超过100GB的物理内存。 PS:我在Ubuntu 14,Redis 3.0和Postgresql 9.3

redis:在运行时启用禁用的命令

这是一个Redis 2.8.13在centos上的生产实例。 在我们的redis.conf中,我们有这样的: rename-command CONFIG "" 现在,我们要运行需要我们使用CONFIG命令的延迟监视器。 我们有root权限,这是我们自己的专用服务器。 是否有可能修改conf文件并重新加载configuration而不重新启动redis? (这是一个生产系统)

Redis占用了所有的服务器内存。 该怎么办?

我有一个Redis服务器运行版本2.4.5和一个11GB的dump.rdb加载到内存中。 它在EC2上运行在高内存4倍超大实例(总共70GB内存)上。 然而,事实certificate,Redis已经占用了50GB的内存,而且越来越多。 我的数据集仍然会变大,大概在20GB左右,所以显然70GB的内存是不够的。 你们有什么想法来克服这个限制,或者如何让Redis减less内存? 我试过Redis的32位,但它死在试图加载数据集到内存启动。 过去也尝试了最大记忆,但得到了奇怪的结果。 还没有尝试虚拟内存,因为我读它是/将被弃用。

用stream程pipe理器而不是init.d来pipe理程序是否有好处?

我使用Redis,Memcached和Nginx作为特定的,Supervisor作为进程pipe理器,但任何常规信息也是有帮助的。 上述安装apt-get程序都带有/etc/init.d/脚本。 是否提供了init.d脚本来为新手提供方便的设置,并且删除那些init.d脚本和使用像Supervisor这样的pipe理每个程序是有显着的好处的,这些可能不会通过使用init.d来获得init.d脚本?

REDIS连接环境variables

我有一个连接到pub / sub的外部redis服务器的应用程序服务器,我正在使用redis python库,当我连接使用库时,它假定redis服务器在127.0.0.1:6379本地启动。 是否有一个环境variables,将默认的redis连接设置为127.0.0.1:6379 ? 我可以在我的应用程序代码中指定服务器端点,但是如果有可用的话我更喜欢使用环境variables。

单个redis实例,通过unix套接字与本地redis连接,通过tcp远程连接。 可能?

我有本地的Redis实例在Unix套接字上侦听。 是否有可能通过TCP远程连接到这个Redis实例? 任何解决scheme 也许某种代理TCP <> Unix套接字?

Redis吃了越来越多的记忆

我在Ubuntu 14.04上运行Redis 2.8.17,昨天Redis开始吃掉所有的内存,直到被OOM杀死。 我重新启动了它多次,重新启动服务器,刷新所有数据,但总是相同的结果:当我启动它,内存消耗每秒上升,直到它被杀死在3GB左右。 看看这个短片: http : //screencast.com/t/RYqTO7Gradi1 注意RES列上升? 这是一个空的数据集刚刚开始的Redis。 我所做的一件事情可能与之前的服务器上的Monit更新有关。 这没有问题,但不应该影响Redis。 一个apt-get update虽然完成,所以也许有一些系统库更新,可能会导致这一点? 无论如何,我完全没有想法,任何提示可能会有所帮助! 这里是我的redis.conf INFO的输出: https : redis.conf