草庐IT

redis_master

全部标签

memory - Redis+Resque : Which maxmemory-policy for using redis with Resque?

将Resque与Redis结合使用我一直收到Redis的OOM命令在使用内存时不允许>'maxmemory'错误。现在很明显,我似乎应该将redis的内存从当前的500MB增加,但我想确保我也设置了正确的最大内存/数据驱逐策略,以便将redis与resque一起使用。目前它在volatile-lru上。(我一直在寻找这方面的文档,但找不到任何东西。)thisstackoverflowanswer以及来自redis的以下数据..keys=81824,expires=0,avg_ttl=0evicted_keys0expired_keys0...让我相信我配置错误,添加更多内存只会推迟问题

multithreading - 在 Redis 中更新和检索 key

我正在使用Redis键值对来存储数据。针对特定键的数据可以在任何时间点更改,因此在每次检索请求之后,我异步更新针对请求的键存储的数据,以便可以为下一个请求提供更新后的数据。我已经做了很多测试,但我仍然想知道这种方法是否会产生一些负面后果?PS:数据是从多台服务器整合而来的。在此先感谢您的任何帮助/建议。 最佳答案 如果你已经知道要存储的值,你可以使用GETSET(或者transaction如果它不是简单的字符串类型)。如果新值是对值的一些操作,即f(value),您应该在LUA中进行操作脚本。否则其他客户端可能会在您更新之前读取旧值

python - 使用 redis sub\pub 的 Tornado 套接字

我需要有关将网络套接字与Redis发布/订阅channel结合使用的性能方面的建议。我使用tornado作为网络服务器。我有大约100个客户端在监听某个事件的状态。每个客户端都有单独的事件,只需要监听自己的事件。套接字连接是短暂的,大约1-20秒。我看到两个选项:在redis中为每个套接字事件对创建单独的发布/订阅channel。在这种情况下,我会有很多channel。创建一个发布/订阅channel,订阅所有客户端并在Controller中过滤消息以将它们转发到合适的客户端。在这种情况下,我有很多客户收听一个channel。以下哪个选项对性能更好? 最佳答

caching - 如何检查redis缓存表是否为空?

我正在使用redis在MVC应用程序中缓存。我想检查redis缓存为空(无数据)然后触发将填充redis的Web作业缓存来自sql的表数据数据库。如何检查redis缓存中特定表中的空数据? 最佳答案 我不同意@bitoiu。不要将keys命令作为常规操作运行。key不打算以这种方式运行-它应该仅用于调试操作。同样,使用INFO不会告诉您特定数据是否存在,只是告诉您那里有东西。如果您只有一个键,那么可以肯定这似乎有效-直到您发现作业运行出错并存储了空字符串或错误数据。如果您只打算存储一个key,则可能有更好的选择。如果您几乎肯定要从S

node.js - 在 Node.js/Express 中的路由中传递 Redis 键值对

这类似于question,但我的代码有多个路由。下面的代码适用于我想做的事情,但我想知道是否有更简洁的方法来编写它,因为我是Node/Express/Redis的新手。varexpress=require('express');varrouter=express.Router();vario=require('socket.io');varredis=require('./../lib/redis');redis.get('count',function(err,value){if(err)throwerr;/*GETDashboard*/router.get('/',function

redis - sscan 不返回部分成员

我有一个包含整数值的集合。我想用sscan检索它的一部分.127.0.0.1:6379[1]>smembersd1)"1"2)"2"3)"3"4)"4"5)"5"6)"6"7)"7"8)"8"...但是sscan返回完整的成员列表:127.0.0.1:6379[1]>sscand01)"0"2)1)"1"2)"2"3)"3"4)"4"5)"5"6)"6"7)"7"8)"8"9)"9"....有什么方法可以让我一页一页地显示成员(member)(例如,每次扫描10个项目) 最佳答案 使用COUNT指令,如SCAN中所述的文档以返回固定

caching - 像redis一样使用Elasticsearch作为键值缓存是否有意义

我最近遇到一个问题,因为redis不是分布式的,不支持并行(多核),Elasticsearch不是一个更好的选择来代替redis用于缓存目的。这都是引用一个简单的网络,我们在其中使用redis来缓存数据库查询。我有点明白了here,但仍然不确定它是否有任何真正的好处。打开此线程讨论这样做的优点/缺点。 最佳答案 这不是您真正想要的,但您可能想看看Aerospike.Redisisanin-memorydatastructurestoreknownforspeedandoftenusedasacache.BothRedisandAer

redis 哨兵与集群中的服务器不同步

我们有一个包含多个redis(2.8)服务器(比如4个)和同样多的redissentinel的设置。在每台机器启动时,我们通过命令行将预选机器设置为主机,其余所有机器作为其从机。哨兵都在监视这些机器。客户端首先连接到本地哨兵并检索主站的IP地址,然后连接到那里。此设置大部分时间都没有问题,但有时哨兵会与服务器不同步。如果我将机器命名为A、B、C和D-哨兵会认为B是主机,而redis服务器都连接到作为主机的A。关闭B上的Redis服务器也无济于事。我不得不将其关闭并在A上手动“Sentinel故障转移”来解决问题。问题是1.是什么原因导致这种情况发生?解决此问题最简单快捷的方法是什么?2

node.js - NodeBB (Redis) 找回用户名和密码

我想查询我的Redis服务器以获取用户名的匹配密码。我怎样才能做到这一点?我对Redis和Node的经验都很少,所以我找不到存储这些的key。非常感谢任何帮助! 最佳答案 查看文件/src/routes/authentication.js。你有Auth.login函数,它获取用户名、密码作为参数。然后你在用户对象上有getUidByUserslug函数,它首先被调用并从名为'userslug:uid'的redis哈希返回你的用户ID(_uid)(查看/src/user.js文件db.getObjectField('userslug:

parallel-processing - Redis队列架构

我们如何分配Redis队列来并行处理作业?我们可以在单个Redis队列中放置不同的队列吗?我正在制作一个聊天应用程序,我想完全减少延迟时间。如果假设有更多人在同一时间戳发送消息,那么redis队列中就会有更多消息。有办法处理吗?我正在使用Redis进行内存数据发送。 最佳答案 Redis是单线程的。因此,不能并行处理任何项目。这并不像一开始听起来那么糟糕,因为Redis可以非常快地处理这些小操作(有关它有多快的更多详细信息,请参阅http://redis.io/topics/benchmarks)有序列表只能处理具有唯一分数的项目。