注:以下内容来源于《Redis深度历险 核心原理与应用实践》–钱文品
String
指令:
- set key value
- get key
- 批量mget key1 key 2返回一个列表
- expire key 时间 用于添加过期时间
- setex key time value 相当于set + expire
- setnx
- incr用于整数自增,区间为signed long
- 分布式锁set lock:order true ex 5 nx 即set key value ex time nx
List(列表)
-
redis的列表用来做异步队列,将需要延后处理的任务结构体序列化成字符串,塞进redis列表,另一个线程从这个列表中轮询数据进行处理
-
队列:rpush --lpop
-
栈:rpush – rpop
-
lindex 相当于java的get(int index),遍历查找
-
ltrim保留区间的内容 ltrim books 1 -1,-1表示倒数第一个元素
-
lrange books 0 -1 这个获取指定区间内容
-
ltrim books 1 0清空内容
-
数据小是ziplist,数据大是多个ziplist,叫快速列表,即分配连续空间组成ziplist,再串联起来
hash(字典)
- java的hashMap是全部进行rehash,redis是渐进式rehash
- hset book java “think in java” —> hset name key value
- hget book java —> hget name key
- hgetall name
- hlen name
- hmset name key1 value1 key2 value2
- 同字符串一样,hash结构中单个子key可以计数,指令为hincrby
set(集合)
- sadd key value1 value2 …
- smembers key 获取
- sismember key value1查询是否存在存在为1,不在为0,相当于contians(0)
- scard key获取集合长度
- spop key 弹出一个
zset(有序列表)
- zadd key score value1添加
- zrange key 0 -1 按score排序查出,升序
- zrevrange key 0 -1按score降序
- zcard key 有多少value
- zscore key value1查score,redis内部用double存
- zrangebyscore key 0 8.91按区间遍历
- zrem key value1删除value1