redis ruby客户端学习(一)
一,安装redis服务器
自行解决吧,没什么好说的。
二,安装redis的ruby客户端
这里使用的是redis-rb,自行安装, https://github.com/redis/redis-rb
三,连接服务器
require "redis" r = Redis.new
这是最简单的连接方式,其他方式参见github
四,存取数据
Redis类中的方法和redis命令是一一对应的。
所以github上只给了很少的例子,想用其他的方法,可以去参考redis命令。
redis的值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型
下面简要介绍常用的一些方法。
1, 关键字
redis是key -value型的,对key有一些方法
- 删除一个key:
r.del('name')
- 检查一个key是否存在
r.exists('name')
- 设置
key
的过期时间(秒数)。如果key已过期,将会被自动删除,第二个参数的单位为秒。
r.expire('name',60)
- expireat 的作用和 expire类似,都用于为 key 设置生存时间。不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳 Unix timestamp
r.expireat('name2',Time.now.to_i+60)
- pexpire和 expire的作用类似,但是它以毫秒为单位设置 key 的生存时间,而不像 expire 那样,以秒为单位。
r.pexpire 'name', 1000000
- pexpireat和 expireat类似,但它以毫秒为单位设置 key 的过期 unix 时间戳,而不是像 expireat 那样,以秒为单位。
r.pexpireat 'name', Time.now.to_i+1000000
- 以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。
r.ttl 'name'
- pttl类似于 ttl ,但它以毫秒为单位返回 key 的剩余生存时间,而不是像 ttl那样,以秒为单位。
r.ttl 'my_test'
- 移除给定
key
的生存时间,将这个 key 从『易失的』(带生存时间 key )转换成『持久的』(一个不带生存时间、永不过期的 key )。
r.persist 'name'
- 从当前数据库返回一个随机的key。
r.randomkey
- 将key重命名为newkey,如果key与newkey相同,将返回一个错误。如果newkey已经存在,则值将被覆盖。
r.rename 'name', 'new_name'
- type返回 key 所储存的值的类型。
返回值:
none (key不存在)
string (字符串)
list (列表)
set (集合)
zset (有序集)
hash (哈希表)
r.type 'name'
- 查找所有符合给定模式
pattern 的 key
。
r.keys('n*')
2,字符串
- 存值:
r.set('name'], 'li') #或者 r['sex'] = 'male'
- 取值:
r.get('name') #或者 r['name']
- append, 如果 key 已经存在,并且值为字符串,那么这个命令会把 value 追加到原来值(value)的结尾。 如果 key 不存在,那么它将首先创建一个空字符串的key,再执行追加操作,这种情况 append 将类似于 set 操作。
r.append 'name', '1111'
- getrange获取存储在key上的值的一个子字符串
r.getrange 'name', 1,3
- mget 返回所有指定的key的value。对于每个不对应string或者不存在的key,都返回特殊值nil。正因为此,这个操作从来不会失败。
r.mget 'name', 'rename'
- strlen 返回key的string类型value的长度。如果key对应的非string类型,就返回错误。
r.strlen 'name'
下面是和统计关系比较密切的:
- incr对key对应的数字做加1操作。如果key不存在,那么在操作之前,这个key对应的值会被置为0。如果key有一个错误类型的value或者是一个不能表示成数字的字符串,就返回错误。这个操作最大支持在64位有符号的整型数字。
提醒:这是一个string操作,因为Redis没有专用的数字类型。key对应的string都被解释成10进制64位有符号的整型来执行这个操作。
Redis会用相应的整数表示方法存储整数,所以对于表示数字的字符串,没必要为了用字符串表示整型存储做额外开销。
r.set 'counter', '123456' r.incr 'counter'
- 将key对应的数字加decrement。如果key不存在,操作之前,key就会被置为0。如果key的value类型错误或者是个不能表示成数字的字符串,就返回错误。这个操作最多支持64位有符号的正型数字。
r.incrby 'counter',100
- decr对key对应的数字做减1操作。如果key不存在,那么在操作之前,这个key对应的值会被置为0。如果key有一个错误类型的value或者是一个不能表示成数字的字符串,就返回错误。这个操作最大支持在64位有符号的整型数字。
r.set 'counter', '123456' r.decr 'counter'
- decrby将key对应的数字减decrement。如果key不存在,操作之前,key就会被置为0。如果key的value类型错误或者是个不能表示成数字的字符串,就返回错误。这个操作最多支持64位有符号的正型数字。
r.decrby 'counter', 100
小结:
本次主要介绍了redis ruby客户端的关键字的处理,以及五种数据类型之一的字符串类型的常见方法。