草庐IT

hash - 使用redis排序集存储键值对

我想将(key,value)对存储在Redis排序集中(连同用于排序的double值)。我当前的选择是为键设置排序集,然后使用另一个Redis哈希来存储键对。有没有更好/更规范的方法来解决这个问题? 最佳答案 这在很大程度上取决于有序集的计划使用。您可能使用的一种模式是复制数据。与在NoSQL世界中一样,规范化并不那么重要。您可以做的是将键与排序集中的值连接起来。因此,您可以存储key-value:score,而不是key:score。-字符可以是您选择的任何分隔符,以便您轻松解析。这为您节省了一次访问key:value集来获取值的

api - Redis Booksleeve——如何正确使用Hash API

我正在为Redis使用Booksleeve哈希API。我正在做以下事情:CurrentConnection.Hashes.Set(0,"item:1","priority",task.priority.ToString());vartaskResult=CurrentConnection.Hashes.GetString(0,"item:1","priority");taskResult.Wait();varpriority=Int32.Parse(taskResult.Result)但是我得到一个聚合异常:“针对包含错误类型值的键的ERR操作”我不确定我在这里做错了什么(除了阻止任务

ruby-on-rails - Redis保存一个hash并得到一个hash

无法让它工作。我只想将哈希保存到Redis,然后从Redis检索整个哈希。不是值或键的数组,我只想要哈希。举个例子:jack=Redis.newjack.hset("cart:1","token","456789")ppjack.hget("cart:1","token").class#returnsanarray是否可以将散列传递给Redis,然后将相同的散列作为散列返回,而不是字符串或数组。如果是,怎么办?谢谢 最佳答案 #sethashjack.set('cart:1',{'token'=>'456789'}.to_json)

ruby-on-rails - 参数错误 : odd number of arguments for Hash when trying to connect to redis

我正在尝试通过遵循thistutorial来让Rails连接到Redis.但是当我尝试$redis=Redis.new(:host=>'localhost',:port=>6379)或者甚至只是Redis.new。我也尝试了新的表示法(host:'localhost',port:6379)。Redis工作(通过redis-cli通过的ping-PONG测试)。ArgumentError:oddnumberofargumentsforHashfrom/var/lib/gems/1.9.1/gems/redis-2.1.1/lib/redis.rb:65:in`[]'from/var/li

java - Redis hash写入速度非常慢

我面临一个非常奇怪的问题:使用redis时我的写入速度非常糟糕(在理想情况下,写入速度应该接近RAM的写入速度)。这是我的基准:packageredisbenchmark;importredis.clients.jedis.Jedis;publicclassRedisBenchmark{privatestaticfinalStringREDIS_KEY="anon_id";privateJedisconn;privatelongwriteTimeNano=0;privateRandomStringstringGenerator;privateString[]fields;publicR

redis - 更改 hash-max-ziplist-entries 后,redis 哈希是否保留在 ziplist 中?

我正在运行一个redis实例,我在其中存储了很多具有整数字段和值的哈希值。具体来说,有很多形式的散列{1:,2:,...,~10000:}我最初使用hash-max-ziplist-entries的默认值运行redis:hash-max-ziplist-entries512hash-max-ziplist-value64redis使用了大约3.2GB的内存。然后我将这些值更改为hash-max-ziplist-entries10240hash-max-ziplist-value10000然后重启redis。我的内存使用率下降到大约480MB,但Redis使用了100%的CPU。我将值恢

hash - 如何从 redis geohash 中删除一个项目?

Redis3.2支持geohash类型。GEOADDisusedtoaddkeys:>GEOADDrestaurants32.034.0Falafel(integer)1>GEOADDrestaurants32.134.1Pizza(integer)1GEORADIUS用于进行地理查询:>GEORADIUSrestaurants32.0534.05100kmWITHDIST1)1)"Falafel"2)"7.2230"2)1)"Pizza"2)"7.2213"但是,HDEL似乎不起作用:>HDELrestaurantsFalafel(error)WRONGTYPEOperationag

hash - 一致性哈希作为扩展写入的一种方式

我想弄清楚我是否在正确的轨道上。我正在构建一个(实时)统计/分析服务,我使用Redis来存储一些集合和哈希值。现在让我们假设我取得了一些成功并且我需要扩展。hashring技术看起来不错,但我的印象是它只适用于缓存场景。如果一个节点宕机了怎么办?理论上,它的key现在由其他节点拥有。实际上,他们不会有数据。它丢失了,对吧?与添加/删除节点相同。我是否遗漏了一些基本的东西?这会是一个穷人的集群吗? 最佳答案 在集群中使用多个节点有两个原因:分片以限制每个节点上存储的数据量复制以减少读取负载并允许在不丢失数据的情况下删除节点。两者根本不

hash - ServiceStack Entities Id 字段名称

我使用ServiceStack并希望将对象作为散列存储在Redis中并通过ID访问它们的部分(字段)而不序列化整个对象,所以我有一个问题:有没有办法使用除“Id”之外的其他属性来标记id字段?我我正在使用命名约定,其中id字段被命名为“classname+Id”。所以在User类中会有UserIdid字段,在ItemclassItemId等。是一种更新对象中已更改属性的方法无需将整个对象序列化为散列且无需低级使用Redis的哈希命令进行操作?例如,通过使用某种lambda。Useruser=client.GetById(userId);user.Name="Newname";clien

Redis hash结构在集群模式下占用内存较多

哈希:./redis-cli-c-p7000hlen0(integer)7746812./redis-cli-c-p7000hlen1(integer)7746812./redis-cli-c-p7000hlen2(integer)7746812./redis-cli-c-p7000hlen3(integer)7746812./redis-cli-c-p7000hlen4(integer)7746812./redis-cli-c-p7000hlen5(integer)0每个散列的内存:./redis-cli-c-p7000keys'*'1)"3"./redis-cli-c-p7000m