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客户端五种数据类型中集合和有序集合的常见方法。

时间: 2024-09-05 02:39:31

redis ruby客户端学习( 三)的相关文章

redis ruby客户端学习( 二)

接上一篇redis ruby客户端学习( 二) 对于redis的五种数据类型:字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets),上一篇介绍了字符串. 1,哈希(Map) hset.设置 key 指定的哈希集中指定字段的值.如果 key 指定的哈希集不存在,会创建一个新的哈希集并与 key 关联.如果字段在哈希集中存在,它将被重写. require "redis" r = Redis.new r.hset 'my_h

redis ruby客户端学习(一)

一,安装redis服务器 自行解决吧,没什么好说的. 二,安装redis的ruby客户端 这里使用的是redis-rb,自行安装, https://github.com/redis/redis-rb 三,连接服务器 require "redis" r = Redis.new 这是最简单的连接方式,其他方式参见github 四,存取数据 Redis类中的方法和redis命令是一一对应的. 所以github上只给了很少的例子,想用其他的方法,可以去参考redis命令. redis的值(va

redis ruby客户端学习(五)

一,redis是支持事务的,请看这篇介绍. 下面介绍几个ruby实现的命令,multi,exec,discard,watch,unwatch. 1,multi:标记一个事务块开始,exec:执行所有 MULTI 之后发的命令 require 'Redis' r = Redis.new r.set 'a', 1 r.set 'b', 2 r.multi r.set 'a', 3 r.set 'b', 6 r.exec #r.get 'a' #=> "3" #r.get 'b' #

redis ruby客户端学习(四)

redis是一个快速.稳定的发布/订阅的信息系统. 这里有相关的介绍 可以用这个发布订阅系统,实现聊天功能. 1,假设有两个用户,分别是user1和user2,各创建一个redis连接. u1 = Redis.new u2 = Redis.new 2,u1订阅一个频道channel1 u1.subscribe "channel1" do |on| on.subscribe do |channel, subscriptions| puts "Subscribed to ##{c

Redis 常用命令学习三:哈希类型命令

1.赋值与取值命令 127.0.0.1:6379> hset stu name qiao (integer) 1 127.0.0.1:6379> hset stu sex man (integer) 1 127.0.0.1:6379> hget stu name "qiao" 127.0.0.1:6379> HMSET st name sun age 22 OK 127.0.0.1:6379> HMGET st name age 1) "sun&

开源中国iOS客户端学习

开源中国iOS客户端学习 续写前言 <开源中国iOS客户端学习>续写前系列博客    http://blog.csdn.net/column/details/xfzl-kykhd.html 开源中国iOS客户端学习——序 说到这款开源软件就得提到她的娘家了--开源中国社区: 开源中国社区简介:开源中国 www.oschina.net 成立于2008年8月,是目前中国最大的开源技术社区.传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现.使用.并交流开源技术的平台.目前开源中国社区已收

Redis学习(一)、安装Redis和客户端

Redis学习(一).安装Redis和客户端 一.Windows安装Redis 1.下载安装包Redis-x64-3.0.504.zip到本地 2.解压 3.打开CMD,切换到解压后的redis目录,然后 C:\Users\Administrator> F:F:\> CD F:\redis\Redis-x64-3.0.504F:\redis\Redis-x64-3.0.504> redis-server.exe redis.windows.conf 4.在不关闭之前的CMD的情况下,再打

redis源码学习(客户端)

大概介绍 redis 客户端设计主要是存储客户的链接,请求,请求解析的命令,执行结果.先看server的结构和client的结构,server里面有多个client,相当于一个服务端可以连多个客户端,服务端根据事件触发模式依次处理客户端的请求. server结构 struct redisServer { /* General */ // 配置文件的绝对路径 char *configfile; /* Absolute config file path, or NULL */ // serverCr

【Redis 1】Redis数据库的学习与实践—安装与部署

Redis数据库的学习与实践-安装与部署 一:Redis数据库简介: Redis-Remote DictionaryServer,可以直接理解为远程字典服务. 这里摘抄一段Redis官网上的话似乎更能准确的概述Redis的含义:Redis is an open source,BSD licensed, advanced key-valuecache and store.It is often referred to as a datastructure server since keys can