Redis基础操作学习
1. 设置值,取值。 set ,get。删除映射,del 。注意,不能使用=赋值,假如使用set name=1,执行成功,只能以get name=1取值为空。
2. 整型变量自动增加使用incr命令。
3.设置变量有效期,expire , 查看变量有效期,单位为秒。ttl -1表示永不过期,-2表示不存在了。注意,重新赋值后,有效期被重置。
4.Redis支持存储List(有序的)。重要的一些命令是 RPUSH, LPUSH, LLEN, LRANGE, LPOP, 和 RPOP。
RPUSH 插入在列表尾部.
RPUSH friends "Alice"
RPUSH friends "Bob"
LPUSH 插入在列表头部.
LPUSH friends "Sam"
LRANGE 返回一个子列表. 第一个参数作为起始下标,第二个参数作为终止下标. -1表示检索到列表尾部为止.
LRANGE friends 0 -1 => 1) "Sam", 2) "Alice", 3) "Bob"
LRANGE friends 0 1 => 1) "Sam", 2) "Alice"
LRANGE friends 1 2 => 1) "Alice", 2) "Bob"
LLEN 返回列表长度,
LPOP 移除第一个元素并返回他.
LPOP friends => "Sam"
RPOP 移除最后一个元素并返回他.
RPOP friends => "Bob"
例子只剩一个元素:
LLEN friends => 1
LRANGE friends 0 -1 => 1) "Alice"
5.Redis支持存储Set(无序的,每个值只能出现一次),重要的命令如SADD, SREM, SISMEMBER, SMEMBERS and SUNION
SADD 添加给出的值到集合中.
SADD superpowers "flight" SADD superpowers "x-ray vision" SADD superpowers "reflexes"
SREM 从集合中移除给出的值.
SREM superpowers "reflexes"
SISMEMBER 测试给出的值是否在集合中. 1表示存在,0表示不存在.
SISMEMBER superpowers "flight" => 1 SISMEMBER superpowers "reflexes" => 0
SMEMBERS 返回集合的所有成员元素.
SMEMBERS superpowers => 1) "flight", 2) "x-ray vision"
SUNION 返回两个或更多集合的所有元素.
SADD birdpowers "pecking" SADD birdpowers "flight" SUNION superpowers birdpowers => 1) "pecking", 2) "x-ray vision", 3) "flight"
6.集合是很方便的数据类型, 但是因为是无序的很容易出问题. Redis 1.2介绍了有序的集合。
有序集合与普通集合类似, 但是每一个值有一个关联的得分. 这个得分用来对集合的元素排序.
ZADD hackers 1940 "Alan Kay" ZADD hackers 1906 "Grace Hopper" ZADD hackers 1953 "Richard Stallman" ZADD hackers 1965 "Yukihiro Matsumoto" ZADD hackers 1916 "Claude Shannon" ZADD hackers 1969 "Linus Torvalds" ZADD hackers 1957 "Sophie Wilson" ZADD hackers 1912 "Alan Turing"
在例子中, 得分是出生年份,值是姓名。
ZRANGE hackers 2 4 => 1) "Claude Shannon", 2) "Alan Kay", 3) "Richard Stallman"
7.Redis也能存储hash表。
Hashes是值与域的映射, 因此他们能完美地表示对象 (例如: User带有属性 name, surname, age等等):
HSET user:1000 name "John Smith" HSET user:1000 email "john.smith@example.com" HSET user:1000 password "s3cret"
返回保存的数据使用 HGETALL:
HGETALL user:1000
一次返回多个属性:
HMSET user:1001 name "Mary Jones" password "hidden" email "mjones@example.com"
也可以只返回一个属性:
HGET user:1001 name => "Mary Jones"
数值操作与普通字符串一样并且值的自增是原子性的.
HSET user:1000 visits 10
HINCRBY user:1000 visits 1 => 11
HINCRBY user:1000 visits 10 => 21
HDEL user:1000 visits
HINCRBY user:1000 visits 1 => 1