redis五大数据类型
字符串
哈希
列表
集合
有序集合
键操作
# 1.set 键名 值(覆盖) set k1 v1 # 2.EXISTS 键名 EXISTS k1 # 3.查所有keys值 keys * # 4.move 键值 库编号,当前库对应键值会消失 move k1 2 # 5.ttl 键值,查看键存活时间(永久为-1,过期或不存在-2) # 6.get 键值 # 7.EXPIRE 键值 存活时间 # 8.type 键值 查看键类型 # 9.del 键值
字符串
# append 键 值 ,追加字符串 append k1 12345 # STRLEN 键 获取字符串长度 #incr、decr、incrby、decrby一定要是数字才能加减 incr k1 decr k1 incrby k1 3 decrby k1 3 # getrange k1 0 -1 (获取全部) # getrange k1 0 3 (获取0-3位左闭右开) # setrange k1 0 xxx (第0位开始覆盖) # setex 键值 存活时间 value (set with expires) # setnx 键值 value (set if not exist)如果存在不执行 # mset k1 v1 k2 v2 k3 v3 (一次设置多对值) # msetnx k1 v1 k2 v2 k3 v3 (如果有一个存在,全部插入失败) # mget k1 k2 k3 (一次获取多个值)
列表
是一个字符串链表,left、right都可以插入添加
如果键不存在,创建新的链表
如果键已存在,新增内容
如果值全部移除,对应的键也就消失了
链表的数据结构导致了对头、尾的操作效率极高,但对中间元素效率O(n)。
# lpush list01 1 2 3 4 5 (左插) # lrange list01 0 -1 # rpush list02 1 2 3 4 5 (右插) # lpop list01 # rpop list02 # lindex list01 3 按照索引从上到下获得元素 # llen list01 获取列表长度 # lrem list01 删n个value lrem list01 n m # 移除列表中n 个 m # ltrim list01 0 4 (将list01的0到4包含4的索引取出,并赋值给list01) # rpoplpush 源数组 目标数组 rpoplpush list01 list02 # lset key index value (索引为index设置为value) # linsert key before/after 值1 值2(在值1前插入值2)
集合
# sadd set01 1 1 2 2 3 3 添加(自动过滤重复元素) # scard set01 获取元素个数 # srem key value 删除集合中的元素 # srandmember key n 随机出n个元素 # spop key 随机出栈 # smembers set01 查看set01中的所有元素 # smove key1 key2 (将key1中的某个值移到key2中) # 数学集合运算 # sdiff key1 key2 (取key1和key2的差集,在key1中但不在key2中) # sinter key1 key2 (取key1和key2的交集,在key1且在key2中) # sunion key1 key2 (取key1和key2的并集)
哈希
KV模式不变,但V是一个键值对。
# hset user id 01 (键为user,值是id-01的键值对) hset user id 01 name yyh age 18 # hget user id hget user id name age hgetall user # hdel user id (将user中的id删除) # hexists user id (判断user中是否有id) # hkeys user (获取user中的所有key) # hvals user (获取user中的所有value) # hincrby user age 2 (user的age增加2) # hincrby user score 0.5 (将user的score增加0.5) # hsetnx user age 25 (如果user不存在age则增加)
排序集合(sorted set)
# zadd zset01 60 v1 70 v2 80 v3 (60-v1,70-v2,80-v3)构成键值对,可以按键排序 # zrange zset 0 -1 (获取集合内所有元素) # zrange zset 0 -1 withscores # zrangebyscore key 开始score 结束score zrangebyscore 60 90 (60<=score<=90) zrangebyscore 60 (90 (60<=score<90) zrangebyscore (60 (90 (60<score<90) zrangebyscore 60 90 limit startindex nums (先取出60-90的,再获取startindex开始nums个元素) # zrem zset01 v5 (移除v5这个元素) # zcard (获取元素个数) # zcount zset01 60 90 (返回score在60-90之间的元素个数) # zrank zset01 v4 (获取v4在zset01中的索引) # zcore zset01 v4 (获取v4对应的score值) # zrevrank zset01 v4 (获取v4的逆序坐标值) # zrevrange zset01 0 -1 (逆序获取zset01的元素) # zrevrangebyscore zset01 90 60 (根据分数逆序)
来源:https://www.cnblogs.com/Ghostant/p/12423685.html