ruby-on-rails - 如果使用 Ruby on Rails 在 redis 中存在,我如何更新 HKEYS 字段

标签 ruby-on-rails redis redis-cli

我正在使用 ruby​​ 2.5.1。我确实使用 HKEYS 将 key 存储在 redis 中并使用 HSCAN 过滤键.如果 key 已经存在,我需要修改 HKEYS。

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

最佳答案

您可以使用 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 

看似低效但有效

关于ruby-on-rails - 如果使用 Ruby on Rails 在 redis 中存在,我如何更新 HKEYS 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56555170/

相关文章:

memory - 获取内存中的redis key-value大小

ruby-on-rails - 具有多个条件的Postgresql INNER JOIN

ruby-on-rails - 找不到有效的 gem 安装 activerecord-sqlite3-adapter

python - scrapy-redis程序不会自动关闭

redis - redis url的最后一部分是什么意思?

redis - 如何在不知道列表大小的情况下使用 redis-cli 打印列表中的所有值?

performance - 如何识别 Redis 性能/瓶颈

ruby-on-rails - 将范围从模型移动到 Rails 4 中的某个模块

python - Django 相当于 Rails cancan 和 devise

spring - 如何检查一个 REDIS 服务器可以给客户端的总 redis 连接数?