草庐IT

set_charset

全部标签

redis - 在 Redis 计数器中避免在 SET 之前获取 GET

我有兴趣在我的网络应用程序中创建几个不同的基于redis的计数器。很多这些东西基本上都是用于指标等,但这并没有什么区别。我的问题基本上如下,是否可以避免这样做:if$redis.get(key)!=null//incrementkeyelse//createkeywithacounterof1理想情况下,像这样的东西会更优化$redis.incr(key,1)//incrementkeyby1,andifitdoesnotexist,startitatthevalue1我是否忽略了redis文档?目前有办法做到这一点吗? 最佳答案

Redis SET with option, 没有过期

我正在编写一个将key存储在Redis或Memcached中的库。为了保持通用性,我想对所有设置操作使用SET,但我正在努力寻找等同于“不过期”的到期值。我可以发送标记值吗?例如,如果过期时间为100,我想发送:SETmyKeymyValueex100NX但如果没有到期,我宁愿这样做SETmyKeymyValueex-1NX而不是SETNXmyKeymyValue有趣的是,似乎没有任何方法可以在没有到期的情况下使用XX选项执行与SET等效的操作。 最佳答案 只需发送设置命令而不EX选项。SetkeyvalueNX

caching - 如何对redis的sets数据结构进行分页?

我想使用redis的sets数据结构来存储用户的关注列表,我如何进行分页以根据页面大小从列表中获取记录? 最佳答案 除了@DidierSpezia写的内容之外,我还尝试将关注者存储在一个排序集中。如果你想按名称存储它们,将它们全部存储为0,然后使用ZRANGEBYLEX按词汇对它们进行分页。如果你想按照他们被加为好友的顺序,使用添加的时间戳作为分数,并使用ZRANGE按时间分页。[编辑]哦,如果内存与您有关,另一种选择:如果id是恒定长度的整数,您可以使用字符串键将它们作为二进制值存储在数组中,并使用范围对其进行分页。它将非常快并且

c# - Redis MSET 相当于 SET 或 LIST?

我正在编写一个与REDIS交互的C#应用程序(通过C#REDIS客户端接口(interface),例如ServiceStack/BookSleeve)。我正在寻找有关如何最有效地将两个并发的键和值列表多重保存到协调集中的建议。一些键会被复制,此时我想简单地将相应的值添加到集合中。MSET命令允许添加多个键/值对,但我的目标是包含这些值的集合。到目前为止,我的研究表明我可以为每个不同的键和值分组流水线化多个SADD命令,但我很好奇是否有更有效的方法。 最佳答案 我已经决定将列表映射到Dictionary>中(键是设置名称)和流水线化S

redis - 如何获取 foo :* using a single id counter instead of a set/array 中的所有哈希值

介绍我的域有articles,其中有一个title和text.每篇文章都有revisions(就像SVN概念),所以每次更改/编辑时,这些更改将存储为revision.修订由changes组成和description这些变化我希望能够获得所有修订descriptions立刻。有什么问题?我确定我会存储revision作为articles:revisions:中的哈希存储changes,和description在里面。我不确定的是如何获得所有descriptions立刻。我有很多选择可以做到这一点,但没有一个能说服我。将文章的修订ID存储为一个集合,并使用SORTarticles:rev

caching - Redis SET UNION 操作中的键数是否有限制?

我有一个场景,我将大量数据从GoogleBigQuery转储到RedisSET数据结构以获得更好的响应时间。我需要对数百万个键进行SETUNION操作。我已经用几千个键进行了测试并且工作正常。问题是,一次可以提供给SUNION命令的键数有限制吗?真的是SUNIONKey1Key2Key3.....KeyN吗?假设我有足够的系统容量。 最佳答案 [...]overmillionsofkeysRedis的文档中没有关于在单个sunion命令中可以提供多少键的限制的声明。顺便说一句,我怀疑在Redis中做这样的操作是个好主意。请记住,Re

java - 在 Java 中,如何从 Redis hkeys(key) 中获取一个有序的 Set?

我将哈希值保存在redis(jedis)中,如下所示:(键、字段、值)sampleKey,01234::Test,firstValuesampleKey,01234::Real,secondValuesampleKey,01235::Test,firstValuesampleKey,01235::Real,secondValue然后使用“Setset=jedis.hkeys(sampleKey)”得到一个set,然后通过System.arraycopy转换成Array。我检查了数组,数据存储方式与“01235::Test、01234::Real、01235::Real、01234::T

php - ZF2 Redis 适配器 : getting TTL or setting a new expiration for a key?

Redis可以回馈一个key的TTL,或者设置一个新的过期时间;但我看不到如何使用ZF2Redis缓存存储适配器实现相同的目标。我知道我可以为每个适配器实例设置一个默认的TTL,但我需要能够知道一个值还剩多少秒,或者能够“触摸”一个值,延长它的生命周期,或者甚至可以明确设置新的过期时间。现在是否有可能使用Zend的适配器来实现其中的任何一个?有什么办法可以绕过这个直接做吗? 最佳答案 您可以使用以下约定来设置临时过期值。我不知道你如何获得过期时间/***@var\Zend\Cache\Storage\Adapter\Redis$re

redis - 使用 Redis Sorted Sets 作为队列

我们正在为我们的平台构建一个PushAPI,并期望它每分钟推送大量的Webhook事件(有些是数千个)。两个相同的事件可能会在彼此相隔几毫秒的时间内创建,我们希望将它们聚合在一起。目标:尽我们所能聚合相同的事件,以便这些事件中的2个或更多事件只会产生一个工作。免除创建作业的客户的聚合责任。综上所述,在我们可能有16个进程排队作业的设置中,使用Redis有序集有用吗?我正在考虑使用时间戳作为分数,并通过如下命令不断“弹出”项目:MULTIZRANGEqueue0{demand-1}ZREMRANGEBYRANKqueue0{demand-1}EXEC但我不确定性能成本或其他考虑因素。有人

nginx - lua-resty-redis set_keepalive 推荐设置

我正在使用red:set_keepalive(max_idle_timeout,pool_size)(来自这里:https://github.com/openresty/lua-resty-redis#set_keepalive)使用Nginx并尝试确定用于max_idle_timeout和pool_size的最佳值。如果我的worker_connections设置为1024,那么将pool_size设置为1024是否有意义?对于max_idle_timeout,60000(1分钟)是不是太“激进”了?使用较小的值是否更安全?谢谢,马特 最佳答案