ruby-on-rails - 如果使用 Ruby on Rails 在 redis 中存在 eixists,我如何更新 HKEYS 字段
问题描述
我正在使用红宝石 2.5.1。我确实使用 HKEYS 将密钥存储在 redis 中,并使用HSCAN过滤密钥。如果密钥已经存在,我需要修改 HKEYS。
如果 redis 中存在使用 Ruby on Rails 的 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
似乎效率低下,但它的工作原理
推荐阅读
- node.js - node js发现特殊字符的问题
- reactjs - 我的反应代码没有出现在浏览器中
- python - Qiskit 中的 Jupyter Notebook 命令失败
- html - 在导航栏中添加图像和文本之间的间距 - 引导
- mysql - 你可以在mysql中创建一个带有点的表吗?
- dynamics-365 - 如何自定义 Dynamics 365 模型驱动应用的顶部导航
- excel - Excel - 如何在 B 列中计数,不包括 A 列中的重复值?
- java - 具有通用属性的 Java 枚举
- asp.net-mvc - 两种形式的验证错误重复
- haskell - Haskell - 内置元组,Ord 定义为仅按第一个元素进行比较?