redis笔记01-5种数据类型

1.String是最常用的一种数据类型,普通的key/value存储都可以归为此类。

  • set:设置key对应的值为String类型的value
  • get:获取key对应的值
aliyun_li:0>set key value
"OK"
aliyun_li:0>get key
"value"
  • mget:批量获取多个key的值,如果可以不存在则返回null
aliyun_li:0>mget key key1 key2
 1)  "value"
 2)  "value1"
 3)  null
  • incr:对key对应的值进行加加操作,并返回新的值
  • incrby:加指定值
aliyun_li:0>set keynum 1
"OK"
aliyun_li:0>incr keynum
"2"
aliyun_li:0>incrby keynum 2
"4"
  • decr:对key对应的值进行减减操作,并返回新的值
  • decrby:减指定值
aliyun_li:0>decr keynum
"3"
aliyun_li:0>decrby keynum 3
"0"
  • setnx:设置key对应的值为String类型的value,如果key已经存在则返回0
  • setex:设置key对应的值为String类型的value,并设定有效期
aliyun_li:0>setnx key value
"0"
aliyun_li:0>setnx keyNotExists value
"1"
aliyun_li:0>setex keyNotExists1 10 value
"OK"
aliyun_li:0>ttl keyNotExists1
"-2"
  • getrange:获取key对应value的子字符串
aliyun_li:0>set key 1234567890
"OK"
aliyun_li:0>getrange key 0 1
"12"
  • mset:批量设置多个key的值,如果成功表示所有值都被设置,否则返回0表示没有任何值被设置
aliyun_li:0>mset key1 value key2 value2
"OK"
  • msetnx:同mset,不存在就设置,不会覆盖已有的key
aliyun_li:0>msetnx key1 value1 key2 value2 key3 value3
"0"
aliyun_li:0>mset key4 v4 key5 v5
"OK"
aliyun_li:0>mset key5 v5 key6 v6
"OK"
  • getset :设置key的值,并返回key旧的值
aliyun_li:0>getset key5 newv5
"v5"
aliyun_li:0>get key5
"newv5"
  • append:给指定key的value追加字符串,并返回新字符串的长度
aliyun_li:0>get key 
"v"
aliyun_li:0>append key a
"2"
aliyun_li:0>get key
"va"

2.Hash

Hash是一个String类型的field和value之间的映射表。
redis的Hash数据类型的key(hash表名称)对应的value实际的内部存储结构为一个HashMap。
Hash特别适合存储对象。
所存储的成员较少时数据存储为zipmap,当成员数量增大时会自动转成真正的HashMap,此时encoding为ht。
  • hset:设置key对应的HashMap中的field的value
  • hget:获取key对应的HashMap中的field的value
  • hgetall:获取key对应的HashMap中的所有field的value
  • hlen:返回key对应的HashMap中的field的数量
aliyun_li:0>hset k f1 "v1"
"1"
aliyun_li:0>hset k f2 "v2"
"1"
aliyun_li:0>hget k f1
"v1"
aliyun_li:0>hgetall k
 1)  "f1"
 2)  "v1"
 3)  "f2"
 4)  "v2"
aliyun_li:0>hlen k
"2"

3.List

lpush:将一个或多个值插入到列表头部
lrange:获取key对应的list的指定下标范围的元素,-1表示获取所有元素
lpop:移出并获取列表的第一个元素,并返回该元素
rpush:在key对应的list的尾部添加一个元素
rpop:从key对应的list的尾部删除一个元素,并返回该元素
aliyun_li:0>lpush lk v1 v2 v3 v4 v5
"5"
aliyun_li:0>lrange lk 0 -1
 1)  "v5"
 2)  "v4"
 3)  "v3"
 4)  "v2"
 5)  "v1"
 aliyun_li:0>lpop lk
"v5"
aliyun_li:0>rpush lk v6
"5"
aliyun_li:0>lrange lk 0 -1
 1)  "v4"
 2)  "v3"
 3)  "v2"
 4)  "v1"
 5)  "v6"
 aliyun_li:0>rpop lk
"v6"

4.Set

sadd:在key对应的set中添加一个元素
smembers:获取key对应的set的所有元素
spop:随机返回并删除key对应的set中的一个元素
suion:求给定key对应的set并集
sinter:求给定key对应的set交集
aliyun_li:0>sadd sk v1 v2 v3 v4 v5
"5"
aliyun_li:0>smembers sk
 1)  "v2"
 2)  "v1"
 3)  "v4"
 4)  "v3"
 5)  "v5"
aliyun_li:0>spop sk
"v2"
aliyun_li:0>smembers sk
 1)  "v4"
 2)  "v3"
 3)  "v1"
 4)  "v5"
aliyun_li:0>smembers sk1
 1)  "v6"
 2)  "v1"
aliyun_li:0>sunion sk sk1
 1)  "v3"
 2)  "v4"
 3)  "v6"
 4)  "v1"
 5)  "v5"
aliyun_li:0>sinter sk sk1
 1)  "v1"

5.SortSet

zadd :在key对应的zset中添加一个元素
zrange:获取key对应的zset中指定范围的元素,-1表示获取所有元素
zrem:删除key对应的zset中的一个元素
zrangebyscore:返回有序集key中,指定分数范围的元素列表,排行榜中运用
zrank:返回有序集合中指定成员的索引
set是通过hashmap存储,key对应set的元素,value是空对象
sortset是hashmap存储,还加了一层跳跃表
跳跃表:相当于双向链表,在其基础上添加前往比当前元素大的跳转链接
aliyun_li:0>zadd zk 1 v1 2 v2 3 v3 4 v4 5 v5
"5"
aliyun_li:0>zrange zk 0 -1
 1)  "v1"
 2)  "v2"
 3)  "v3"
 4)  "v4"
 5)  "v5"
aliyun_li:0>zrem zk v3
"1"
aliyun_li:0>zrange zk 0 -1
 1)  "v1"
 2)  "v2"
 3)  "v4"
 4)  "v5"
aliyun_li:0>zrangebyscore zk 1 3
 1)  "v1"
 2)  "v2"
aliyun_li:0>zrank zk v2
"1"
aliyun_li:0>zrange zk 0 -1
 1)  "v1"
 2)  "v2"
 3)  "v4"
 4)  "v5"

6.文章参考链接
a.https://blog.csdn.net/qq_32617703/article/details/103545990
b.https://www.runoob.com/redis/strings-mset.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值