zoukankan      html  css  js  c++  java
  • redis ruby客户端学习( 三)

    接上一篇 redis ruby客户端学习( 二)

    对于redis的五种数据类型:字符串(String)哈希(Map)列表(list)集合(sets) 和 有序集合(sorted sets),上一篇介绍了哈希和列表。

    一,集合

    • mset。添加一个或者多个元素到集合(set)里 
    require "redis"
    
    r = Redis.new
    
    r.mset 'my_set', 'value1'
    • scard。返回集合存储的key的基数 (集合元素的数量).
    r.scard 'my_set'

    返回一个集合与给定集合的差集的元素.

    r.sdiff 'my_set', 'my_set2'
    • sinter。返回指定所有的集合的成员的交集.
    r.sinter 'my_set', 'my_set2'
    • sismember。返回成员 member 是否是存储的集合 key的成员.
    r.sismember 'my_set', 'value2'
    • smembers。返回key集合所有的元素.
    r.smembers 'my_set'
    • smove。

      将membersource集合移动到destination集合中. 对于其他的客户端,在特定的时间元素将会作为source或者destination集合的成员出现.

      如果source 集合不存在或者不包含指定的元素,这smove命令不执行任何操作并且返回0.否则对象将会从source集合中移除,并添加到destination集合中去,如果destination集合已经存在该元素,则smove命令仅将该元素充source集合中移除.

      如果source destination不是集合类型,则返回错误.

    r.smove 'my_set2', 'my_set',  'temp'
    • srem。

      在key集合中移除指定的元素. 如果指定的元素不是key集合中的元素则忽略 如果key集合不存在则被视为一个空的集合,该命令返回0.

      如果key的类型不是一个集合,则返回错误.

    r.srem 'my_set', 'temp'
    • sunion。

      返回给定的多个集合的并集中的所有成员.

    r.sunion 'my_set', 'my_set2'

    二,有序集合

    • zadd。

      该命令添加指定的成员到key对应的有序集合中,每个成员都有一个分数。你可以指定多个分数/成员组合。如果一个指定的成员已经在对应的有序集合中了,那么其分数就会被更新成最新的,并且该成员会重新调整到正确的位置,以确保集合有序。如果key不存在,就会创建一个含有这些成员的有序集合,就好像往一个空的集合中添加一样。如果key存在,但是它并不是一个有序集合,那么就返回一个错误。

      分数的值必须是一个表示数字的字符串,并且可以是double类型的浮点数。

    r.zadd 'z_set', 3,'three'
    • zcard。返回key的有序集元素个数。
    r.zcard 'z_set'
    • zount。返回有序集key中,score值在min和max之间(默认包括score值等于min或max)的成员。
    r.zcount 'z_set',1,3
    • zincrby。

      为有序集key的成员member的score值加上增量increment。如果key中不存在member,就在key中添加一个member,score是increment(就好像它之前的score是0.0)。如果key不存在,就创建一个只含有指定member成员的有序集合。

      当key不是有序集类型时,返回一个错误。

      score值必须是字符串表示的整数值或双精度浮点数,并且能接受double精度的浮点数。也有可能给一个负数来减少score的值。

    r.zincrby 'z_set',10,'two'
    • zrange。

      返回有序集key中,指定区间内的成员。其中成员按score值递增(从小到大)来排序。具有相同score值的成员按字典序来排列。

      如果你需要成员按score值递减(score相等时按字典序递减)来排列,请使用ZREVRANGE命令。 下标参数start和stop都以0为底,也就是说,以0表示有序集第一个成员,以1表示有序集第二个成员,以此类推。 你也可以使用负数下标,以-1表示最后一个成员,-2表示倒数第二个成员,以此类推。

      超出范围的下标并不会引起错误。如果start的值比有序集的最大下标还要大,或是start > stop时,ZRANGE命令只是简单地返回一个空列表。另一方面,假如stop参数的值比有序集的最大下标还要大,那么Redis将stop当作最大下标来处理。

    r.zrange 'z_set',1, -1
    • zrank。

      返回有序集key中成员member的排名。其中有序集成员按score值递增(从小到大)顺序排列。排名以0为底,也就是说,score值最小的成员排名为0。

    r.zrank 'z_set','two'
    • zrem。从排序的集合中删除一个成员
    r.zrem 'z_set','two'
    • zrank。返回有序集key中,成员member的score值。
    r.zrank 'z_set','five'

    小结:

    本次主要介绍了redis ruby客户端五种数据类型中集合和有序集合的常见方法。

  • 相关阅读:
    Apache配置虚拟主机的三种方法(基于IP、端口、域名)
    shell中嵌套执行expect命令实例(利用expect实现自动登录)
    Shell脚本实现SSH免密登录及批量配置管理
    搭建本地yum源服务器
    awk之腾迅面试题1
    16个tomcat面试题
    tomcat常见面试题1
    Mysql经典面试题
    10个超有趣的linux命令
    Codeforces Beta Round #79 (Div. 2 Only)
  • 原文地址:https://www.cnblogs.com/fanxiaopeng/p/4199717.html
Copyright © 2011-2022 走看看