首页 > 解决方案 > 如果使用 Ruby on Rails 在 redis 中存在 eixists,我如何更新 HKEYS 字段

问题描述

我正在使用红宝石 2.5.1。我确实使用 HKEYS 将密钥存储在 redis 中,并使用HSCAN过滤密钥。如果密钥已经存在,我需要修改 HKEYS。

如果 redis 中存在使用 Ruby on Rails 的 HKEYS 字段,我该如何更新?

标签: ruby-on-railsredisredis-cli

解决方案


您可以使用 ruby​​ 代码来完成,但不要认为使用 HKEYS 是个好主意

require 'redis'
redis = Redis.new 
redis.hset('hash_name', 'key' , 'new_value')if redis.hexists('hash_name','key')

或使用扫描

curser , result =  redis.hscan 'hash_name' 
k,val = result.find{ |arr| arr.first == 'k'}
redis.hset('hash_name', 'key' , 'new_value') if k 
# you will need to loop until curser be 0 

似乎效率低下,但它的工作原理


推荐阅读