设为首页 收藏本站
查看: 723|回复: 0

[经验分享] redis ruby客户端学习( 二)

[复制链接]

尚未签到

发表于 2015-7-21 07:06:39 | 显示全部楼层 |阅读模式
  接上一篇redis ruby客户端学习( 一)
  对于redis的五种数据类型:字符串(String), 哈希(Map), 列表(list), 集合(sets)有序集合(sorted sets),上一篇介绍了字符串。
  
  1,哈希(Map)
  


  • hset。设置 key 指定的哈希集中指定字段的值。如果 key 指定的哈希集不存在,会创建一个新的哈希集并与 key 关联。如果字段在哈希集中存在,它将被重写。
  



require "redis"
r = Redis.new
r.hset 'my_hash', 'field1', '001'

  • hget。返回 key 指定的哈希集中该字段所关联的值



r.hget 'my_hash', 'field1'

  • hdel。从 key 指定的哈希集中移除指定的域。在哈希集中不存在的域将被忽略。如果 key 指定的哈希集不存在,它将被认为是一个空的哈希集,该命令将返回0。



r.hdel 'my_hash', 'field1'

  • hexists。返回字段是否是 key 指定的哈希集中存在的字段。



r.hexists 'my_hash', 'field1'

  • hgetall。返回 key 指定的哈希集中所有的字段和值。



r.hgetall 'my_hash'

  • hincrby。增加 key 指定的哈希集中指定字段的数值。



r.hincrby 'my_hash', 'field1',5

  • hkeys。返回 key 指定的哈希集中所有字段的名字。



r.hkeys 'my_hash'

  • hvals。返回 key 指定的哈希集中所有字段的值。



r.hvals 'my_hash'

  • hlen。返回 key 指定的哈希集包含的字段的数量。



r.hlen 'my_hash'

  • hmget。对于哈希集中不存在的每个字段,返回 nil 值。因为不存在的keys被认为是一个空的哈希集,对一个不存在的 key 执行 hmget 将返回一个只含有 nil 值的列表。



r.hmget 'my_hash','field2', 'field3'

  • hmset。设置 key 指定的哈希集中指定字段的值。该命令将重写所有在哈希集中存在的字段。如果 key 指定的哈希集不存在,会创建一个新的哈希集并与 key 关联。



r.hmset 'my_hash','field4', '004', 'field5', '005'
  2,列表(list)


  • lpush。将所有指定的值插入到存于 key 的列表的头部(左边)。如果 key 不存在,那么在进行 push 操作前会创建一个空列表。 如果 key 对应的值不是一个 list 的话,那么会返回一个错误。



r.lpush "my_list", 'value1'

  • lindex。返回列表里的元素的索引 index 存储在 key 里面。 下标是从0开始索引的,所以 0 是表示第一个元素, 1 表示第二个元素,并以此类推。 负数索引用于指定从列表尾部开始索引的元素。在这种方法下,-1 表示最后一个元素,-2 表示倒数第二个元素,并以此往前推。



r.lindex "my_list", 1

  • linsert。
  把 value 插入存于 key 的列表中在基准值 pivot 的前面或后面。
  当 key 不存在时,这个list会被看作是空list,任何操作都不会发生。
  当 key 存在,但保存的不是一个list的时候,会返回error。



r.linsert 'my_list', 'before', 'value1', 'value3'
r.linsert 'my_list', 'after', 'value1', 'value4'

  • llen。返回存储在 key 里的list的长度。 如果 key 不存在,那么就被看作是空list,并且返回长度为 0。 当存储在 key 里的值不是一个list的话,会返回error。



r.llen "my_list"

  • lpop。移除并且返回 key 对应的 list 的第一个元素(左边)。



r.lpop "my_list"

  • lrange。
  返回存储在 key 的列表里指定范围内的元素。 start 和 end 偏移量都是基于0的下标,即list的第一个元素下标是0(list的表头),第二个元素下标是1,以此类推。
  偏移量也可以是负数,表示偏移量是从list尾部开始计数。 例如, -1 表示列表的最后一个元素,-2 是倒数第二个,以此类推。



r.lrange "my_list", 0, -1
  


  • lrem。
  从存于 key 的列表里移除前 count 次出现的值为 value 的元素。 这个 count 参数通过下面几种方式影响这个操作:




    • count > 0: 从头往尾移除值为 value 的元素。
    • count < 0: 从尾往头移除值为 value 的元素。
    • count = 0: 移除所有值为 value 的元素。


  比如, LREM list -2 "hello" 会从存于 list 的列表里移除最后两个出现的 "hello"。
  需要注意的是,如果list里没有存在key就会被当作空list处理,所以当 key 不存在的时候,这个命令会返回 0。



r.lrange "my_list", 0, -1
#=> ["value1", "value1", "value1", "value1", "value3", "value1", "value4"]
r.lrem "my_list", 2, "value1"
r.lrange "my_list", 0, -1
# => ["value1", "value1", "value3", "value1", "value4"]

  • lset。设置 index 位置的list元素的值为 value。index超出范围时会返回一个error。



r.lrange "my_list", 0, -1
# => ["value1", "value1", "value3", "value1", "value4"]
r.lset "my_list", 0, "value5"
r.lrange "my_list", 0, -1
# => ["value5", "value1", "value3", "value1", "value4"]

  • rpop。移除并返回存于 key 的 list 的最后一个元素。



r.rpop "my_list"

  • rpush。向存于 key 的列表的尾部插入所有指定的值。如果 key 不存在,那么会创建一个空的列表然后再进行 push 操作。 当 key 保存的不是一个列表,那么会返回一个错误。



r.rpush "my_list", 'value6'
  小结:
  本次主要介绍了redis ruby客户端五种数据类型中哈希和列表的常见方法。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-88800-1-1.html 上篇帖子: Redis 集群 下篇帖子: PHP 使用redis
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表