redis
五种数据类型
string(字符串),hash(哈希),list(列表),set(集合)及sortset(有序集合)
1) string
字段名称 | 字段说明 | 例子 | 异常 |
---|---|---|---|
set | 设置缓存 | set name jack | ; |
get | 获取缓存 | get name | ; |
getset | 获取并设置缓存最新值 | getset name tom | ; |
del | 删除key | del name | ; |
incr | 数值自增1 (初始值为0) | incr age | 若设置非整型的key,将会报错 |
decr | 数值自减1 (初始值为0) | decr age | 若设置非整型的key,将会报错 |
incrby | 根据设定的数字增加 (初始值为0) | incrby age 6 | ; |
decrby | 根据设定的数字减值 (初始值为0) | decrby age 6 | ; |
append | 字符串拼接 (未设置的key,效果等同于set) | append name tom | ; |
2) hash (存储map结构)
主要用于存储对象关系
字段名称 | 字段说明 | 例子 | 异常 |
---|---|---|---|
hset | 设置单个属性 | hset userinfo_1 name jack | ; |
hmset | 设置多个属性 | hset userinfo_1 name jack age 25 | ; |
hget | 获取单个属性 | hget userinfo_1 name | ; |
hmget | 获取多个属性 | hmget userinfo_1 name age | ; |
hgetall | 获取所有属性 | hmget userinfo_1 | ; |
hkeys | 获取所有属性的健名 | hkeys userinfo_1 | ; |
hvals | 获取所有属性的健值 | hvals userinfo_1 | ; |
hexists | 判断某个属性是否存在 | hexists userinfo_1 name | ; |
hincrby | 增加属性值 (初始值为0) | hincrby userinfo_1 age 2 | 若设置非整型的key,将会报错 |
hlen | 获取所有属性数量 | hlen userinfo_1 | ; |
hdel | 删除单个属性 | hdel userinfo_1 name | ; |
del | 删除整个key | del userinfo_1 | ; |
3) list (有序,元素可重复。此处涉及到0,-1等数值的都为索引下标)
主要用于消息队列操作,秒杀等
字段名称 | 字段说明 | 例子 | 异常 |
---|---|---|---|
lpush | 将一个或多个值插入到列表头部 | lpush list a b c | ; |
lpushx | 将一个值插入到已存在的列表头部 | lpushx list a | key不存在将会报错 |
rpush | 将一个或多个值插入到列表尾部 | rpush list a b c | ; |
rpushx | 将一个值插入到已存在的列表尾部 | rpushx list a | key不存在将会报错 |
lpop | 移出并获取列表的第一个元素 | lpop list | ; |
rpop | 移出并获取列表的最后一个元素 | rpop list | ; |
llen | 获取列表中元素的数量 | llen list | ; |
lrem | 移除列表中的元素 | 从头部移除2个值为a的元素 lrem list 2 a 从尾部移除2个值为a的元素 lrem list -2 a 移除全部值为a的元素 lrem list 0 a | ; |
LTRIM | 对一个列表进行修剪,只保留指定区间内的元素,不在指定区间之内的元素都将被删除。 | LTRIM list 0 -2 (0为第一个,-1为最后一个) | ; |
lset | 通过索引设置列表元素的值 | lset list 0 a | ; |
linsert before | 在列表的元素前插入元素 | 在元素a前插入x元素 linsert list before a x | ; |
linsert after | 在列表的元素后插入元素 | 在元素a后插入x元素 linsert list after a x | ; |
lrange | 获取列表指定范围内的元素 | lrange list 0 -1 (-1表示最后一个元素) | ; |
lindex | 通过索引获取列表中的元素 | lindex list 2 (-1表示最后一个元素) | ; |
rpoplpush | 移除列表的最后一个元素,并将该元素添加到另一个列表 | rpoplpush list list2 (重要:队列消费时可能没有消费成功,这时可以加入到另一个备份队列,此时消费备份队列即可。反之如果消费成功则把备份队列删除即可) | ; |
4) set (无序集合,元素不能重复)
主要用于标签,社交,唯一验证,差集,交集,并集等操作
例如查询用户是否同时够买了2个产品,a产品与b产品,这时使用交集即可,集合中存储用户id
字段名称 | 字段说明 | 例子 | 异常 |
---|---|---|---|
sadd | 向集合添加一个或多个成员 | sadd myset a b c | ; |
smove | 将元素从一个集合转移到另一个集合中 | smove myset myset2 a | ; |
smembers | 返回集合中的所有成员 | smembers myset | ; |
scard | 返回集合中的成员数量 | scard myset | ; |
srandmember | 返回集合中一个或多个随机数 | srandmember myset | ; |
spop | 移除并返回集合中的一个随机元素 | spop myset | ; |
sismember | 判断元素是否存在 | sismember myset | ; |
sdiff | 返回第一个集合与其他集合之间的差异 | sdiff myset myset1 | ; |
sdiffstore | 集合中差集存储到新集合中 | sdiffstore myset myset1 myset2 | ; |
sinter | 返回所有集合的交集 | sinter myset myset1 | ; |
sinterstore | 集合中的交集存储到新集合中 | sinterstore myset myset1 myset2 | ; |
sunion | 返回所有集合的并集 | sunion myset myset1 | ; |
sunionstore | 集合中的并集存储到新集合中 | sunionstore myset myset1 myset2 | ; |
srem | 移除集合中一个或多个成员 | srem myset a b | ; |
5) zset (有序集合,元素不能重复)
主要用于排行榜,名次,构建索引数据等场景
withscores 同时展示成员名字及分数,range查询类型都可使用
字段名称 | 字段说明 | 例子 | 异常 |
---|---|---|---|
zadd | 添加一个或多个成员,或者更新已存在成员的分数 | zadd mysort 100 tom 150 jack | ; |
zincrby | 对指定成员的分数增量 | zincrby mysort 10 tom (减量可写为负数) | ; |
zcount | 返回指定区间分数的成员数 | zcount mysort 60 100 | ; |
zcard | 获取集合的成员数 | zcard mysort | ; |
zrank | 返回指定成员的索引 | zrank mysort tom | ; |
zscore | 返回成员的分数值 | zscore mysort tom | ; |
zrange | 通过索引区间返回指定区间内的成员 | 只查询成员名字 zrange mysort 0 -1 查询成员名字及分数 zrange mysort 0 -1 withscores | ; |
zrevrange | 通过索引返回指定区间内的成员,分数从高到低排序 | zrevrange mysort 0 -1 | ; |
zrangebyscore | 通过分数返回指定区间内的成员 | 普通查询 zrangebyscore mysort 60 120 限制查询数量 zrangebyscore mysort 50 100 limit 0 2 | ; |
zrevrangebyscore | 返回指定分数区间内的成员,分数从高到低排序 | zrevrangebyscore mysort 100 150 | ; |
zrem | 移除一个或多个成员 | zrem mysort tom jack | ; |
zremrangebyrank | 移除中指定排名区间的成员 | zremrangebyrank mysort 1 2 | ; |
zremrangebyscore | 移除中指定分数区间的成员 | zremrangebyscore mysort 60 100 | ; |
zinterstore | 交集操作,结果集中成员的分数值是所有集下成员分数值之和 | zinterstore mysort3 2 mysort1 mysort1 | ; |
zunionstore | 并集操作,结果集中成员的分数值是所有集下成员分数值之和 | zunionstore mysort3 2 mysort1 mysort1 | ; |
6) kyes基础操作
字段名称 | 字段说明 | 例子 | 异常 |
---|---|---|---|
keys * | 查询所有key | keys * | ; |
keys my* | 查询my开头的key | keys my* | ; |
ttl | 返回给定 key 的剩余生存时间 | ttl key | ; |
expire | 为给定 key 设置过期时间,以秒计 | expire key 600 | ; |
del | 删除 key | del key | ; |
exists | 检查 key 是否存在 | exists key | ; |
rename | 修改 key 的名称 | rename key newkey | ; |
renamenx | 仅当newkey不存在时,将key改名为newkey | renamenx key newkey | ; |