redis五大数据类型

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