标签:
对于redis的五种数据类型:字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets),上一篇介绍了字符串。
1,哈希(Map)
require "redis" r = Redis.new r.hset ‘my_hash‘, ‘field1‘, ‘001‘
r.hget ‘my_hash‘, ‘field1‘
r.hdel ‘my_hash‘, ‘field1‘
r.hexists ‘my_hash‘, ‘field1‘
r.hgetall ‘my_hash‘
r.hincrby ‘my_hash‘, ‘field1‘,5
r.hkeys ‘my_hash‘
r.hvals ‘my_hash‘
r.hlen ‘my_hash‘
r.hmget ‘my_hash‘,‘field2‘, ‘field3‘
r.hmset ‘my_hash‘,‘field4‘, ‘004‘, ‘field5‘, ‘005‘
2,列表(list)
r.lpush "my_list", ‘value1‘
index
存储在 key
里面。 下标是从0开始索引的,所以 0
是表示第一个元素, 1
表示第二个元素,并以此类推。 负数索引用于指定从列表尾部开始索引的元素。在这种方法下,-1
表示最后一个元素,-2
表示倒数第二个元素,并以此往前推。r.lindex "my_list", 1
把 value
插入存于 key
的列表中在基准值 pivot
的前面或后面。
当 key
不存在时,这个list会被看作是空list,任何操作都不会发生。
当 key
存在,但保存的不是一个list的时候,会返回error。
r.linsert ‘my_list‘, ‘before‘, ‘value1‘, ‘value3‘ r.linsert ‘my_list‘, ‘after‘, ‘value1‘, ‘value4‘
key
里的list的长度。 如果 key
不存在,那么就被看作是空list,并且返回长度为 0
。 当存储在 key
里的值不是一个list的话,会返回error。r.llen "my_list"
key
对应的 list 的第一个元素(左边)。r.lpop "my_list"
返回存储在 key
的列表里指定范围内的元素。 start
和 end
偏移量都是基于0的下标,即list的第一个元素下标是0
(list的表头),第二个元素下标是1
,以此类推。
偏移量也可以是负数,表示偏移量是从list尾部开始计数。 例如, -1
表示列表的最后一个元素,-2
是倒数第二个,以此类推。
r.lrange "my_list", 0, -1
从存于 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"]
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"]
key
的 list 的最后一个元素。r.rpop "my_list"
key
的列表的尾部插入所有指定的值。如果 key
不存在,那么会创建一个空的列表然后再进行 push 操作。 当 key
保存的不是一个列表,那么会返回一个错误。r.rpush "my_list", ‘value6‘
小结:
本次主要介绍了redis ruby客户端五种数据类型中哈希和列表的常见方法。
标签:
原文地址:http://www.cnblogs.com/fanxiaopeng/p/4198874.html