草庐IT

redis-test

全部标签

redis - 是否有一种功能可以使 redis 中已排序集合的基数保持不变?

例如,我想要一个键(排序集)只存储200个元素。如果向集合中添加新元素(始终具有高分),则应自动删除集合中得分最低的元素,保持排序集合的基数不变。 最佳答案 不,本身没有这样的功能,但很容易实现。首先,请记住成员是独一无二的,因此可能会出现这样一种情况(除非在您的用例中情况并非如此),即添加具有新(高)分数的新成员实际上会更新现有成员的分数。因此,在每个ZADD到您的key之后,执行ZCARD,例如:c=redis.zcard('key')如果ZCARD的响应大于200,则使用差值按等级修剪排序集ZREMRANGEBYRANK:if

redis - Redis如何存储键值?

我在研究Redis,想知道Redis是如何存储key-value的,使得GET和SET的时间复杂度为O(1)。这是哈希表吗?顺便说一下,R​​edis在RAM中存储数据而不是在磁盘上存储数据时的速度有多快。 最佳答案 Redis是内存中的键/值存储,即HashMap/Hashtable类型的数据结构。HashMap的GET或SET的时间复杂度是O(1)。Redis倾向于将数据存储在RAM上,并将其持久保存到磁盘上。但是持久化到磁盘是一项后台日志记录工作。由于对RAM的读/写操作非常快,因此它通常用于缓存。

ruby-on-rails - 在 Redis 中存储数组 - RoR 4

我有一个项目模型。有一种方法可以将所有项目(Item.all)存储在Redis数据库中吗?我试过这个:$redis=Redis::Namespace.new("suggestme",:redis=>Redis.new)$redis.set("itens",Item.all)但是当我取回元素时:$redis.get("itens")我得到一个字符串“#Item::ActiveRecord_Relation:0x007fe399d6e550”想法是在其中存储完整的数组 最佳答案 Redis只存储字符串值。如果要存储其他类型的对象,则必须

用于 ppdb 资源表示的 redis

有一个众所周知的释义词汇资源PPDB.我想知道在Redis中表示数据的最佳方式是什么。在这里,每个键(假设键是第一个字符串)都有一个相似字符串的列表,所以值应该是一个列表,但是对于列表中的每个字符串,我需要保存额外的参数,所以我需要一个值列表列表或哈希列表。应该是这样的{'suggest':[{'sting':'provide','similarity':0,8},{'string':'offer','similarity':0,7}]}其中“suggest”是键,哈希列表是值。在redis中可以这样表示数据吗? 最佳答案 我认为您

autocomplete - Redis ZRANGEBYLEX 转义字符

在我的排序集中,几乎没有这样的项目:>zrangebylexsearch-+1)"abcdefghijkl"2)"[asd](asd)"3)"[zxy](zxc)"如何仅使用前两个字符'[a'检索第二个项目?我正在尝试实现一个自动完成系统,当我在redis-cli中尝试这些特殊字符时,它们会造成问题。我尝试了以下命令,但它们不起作用(带/不带引号):zrangebylexsearch([a"([a\xff"zrangebylexsearch(\[a"([a\xff" 最佳答案 redis-cli需要引号,但除此之外一切都应该按预期工

node.js - 无法快速使用 Redis

我正在使用Express4.x。我在这里声明Redis:varapp=require('express')(),express=require('express'),connect=require('connect'),http=require('http').Server(app),path=require('path'),request=require("request"),io=require('socket.io')(http);//CookieandSessionReqs:varbodyParser=require('body-parser');varcookieParser

c# - Redis 缓存静态列表按过滤器搜索

我有一个大约500项的静态对象列表。ThisObjecthaspropertylike(id[int],Name[string],attribute1[string],attribute2[string]).Ihaveserializedthisobjectintostringandstoredintoredisasastringkeyvalue.ButIneedtofilterthislistof500itemsbasedondifferentusersearchfiltersfroobjectattributesandgivesubsetofthislisttouser.我可以通过

redis - Redis 上的 Mysql 类型限制函数

我正在使用python访问redis中的数据。我想根据模式访问键,但我不想要所有键,我只想对输出进行限制,就像mysql限制函数一样。显然,我可以根据模式获取所有键,然后只对列表进行切片,但问题是我不想获取那么多数据,我只想获取一个样本,因为有数百万个键,对于那个模式。有没有办法做到这一点?我相信人们会面临这个问题。他们是怎么做到的? 最佳答案 您可以尝试将SCAN命令与MATCH和COUNT选项一起使用。但请注意,COUNT只是对实现的提示,并不能保证。例如:127.0.0.1:6379>scan0matchkey-*count5

aync 中的 node.js redis 选择和成员

我对node.js中的异步调用感到很痛苦。我知道我必须享受它,但实际上我讨厌它,因为node.js强制你使用它,而且没有其他选择。我尝试在不同的数据库上运行smembers。所以在这里我想确保我使用了所有3个数据库,因此我使用_.after。但是它不起作用。varredisfetcher=function(string,callback1){varretrieved=[]varcallback=function(){callback1(retrieved)}varafterAll=_.after(3,callback)for(varcol=0;col如果你能帮助我,我将不胜感激。如果您

javascript - 为 node.js 应用程序初始化 redis 数据库的推荐机制是什么?

我是node.js的新手,还不熟悉它周围的生态系统。我有一个单页的Express应用程序,它在redis中缓存一些数据,我想向redis添加一些配置设置>分贝。到目前为止,我只是简单地使用redis-cli手动设置必要的键。我更愿意以某种方式让npm运行脚本(或其他东西),以便尽可能简单地在服务器上部署应用程序。为node.js应用初始化redis数据库的推荐机制是什么? 最佳答案 使用npm上的redis模块,您可以轻松地使用mset()一次设置多个键。示例:varredis=require('redis'),client=red