本人郑重承诺以下都是基本操作,请坐下请坐下。
内容是跟着http://try.redis.io/做的。边学边笔记。
更多指令可以参考http://www.runoob.com/redis/redis-tutorial.html。
通用操作
- FLUSHDB 清空当前库
- FLUSHALL 清空所有库
- DBSIZE 查看库元素数量
- select db 切换库
- Keys * 查看某个Key的值
- exists key name 判断某个Key是否存在
- move key db 把当前库的某个Key移动到目标库
- expire key time 这是Key的过期时间
- ttl key 查看Key的过期时间
- type key 查看Key的类型
String
- SET:设置Key值,冒号可以增加层级结构。
SET server:name "fido"
GET server:name => "fido"
- INCR:键值自增,键值默认为0。设计这个字段主要是为了线程安全。
SET connections 10
INCR connections => 11
INCR connections => 12
DEL connections
INCR connections => 1
- EXPIRE:设置缓存过期时间,单位为秒
- TTL:距离过期还有多少时间。
假如输出-1,表示这个键值没有设置过期时间。
假如输出-2,表示这个键值不存在。
SET resource:lock "Redis Demo 1"
EXPIRE resource:lock 120
TTL resource:lock => 119
SET resource:lock "Redis Demo 2"
TTL resource:lock => -1
LIST
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。
- Redis是支持多种数据类型。List是其中一种。
- 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 输出队列的长度
LLEN friends => 3
- LPOP左弹,RPOP弹出。就是对应删除并返回项目
SET
Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
- SADD:添加元素
SADD superpowers "flight"]
SADD superpowers "x-ray vision"
SADD superpowers "reflexes"
- SREM:移除元素
SREM superpowers "reflexes"
- SISMEMBER 判断是否存在于集合中
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"
SORTED SET
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
- ZADD:增加元素
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"
Hash
Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。
- HSET 添加对象
HSET user:1000 name "John Smith"
HSET user:1000 email "john.smith@example.com"
HSET user:1000 password "s3cret"
//当然也可以一句搞定
HMSET user:1001 name "Mary Jones" password "hidden" email "mjones@example.com"
- HGETALL 获取对象
HGETALL user:1000
- HGET 取出某一项
HGET user:1001 name => "Mary Jones"
- HINCRBY 让某个字段以一个数值递增。
- HDEL 删除某个字段
- HINCRBY同INCR
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
好了就到这里吧!