redis系统性重学(一)

redis的五种数据类型的基本操作

2022-11-01 01:39:42   2025-02-11 09:41:28   其他   165 views  

 

String字符串

存储的值:可以是字符串、整数或浮点,统称为元素
读写能力:对字符串操作对整数类型加减


set string1 php    //设置一个key为string1 value为php的键值对
get string            //获取一个key为string1的键值对
输出结果为 “php”

set sring2 4         //设置一个key为string2 value为4的键值对
get string2           //获取一个key为string2的键值对
输出结果为  4
incr string2           //让key为string2的value自增
get string2           //获取一个key为string2的键值对
输出结果为  5
decrby string2 2          //让key为string2的value减2
get string2           //获取一个key为string2的键值对
输出结果为  3

List列表

存储的值:一个序列集合且每个节点都包好了一个元素
读写能力:序列两端推入、或弹出元素 修剪、查找或移除元素

lpush list1 12      //从左侧往list1中推入value值12
lpush list1 13      //从左侧往list1中推入value值13
rpop  list1           //从右侧推出list1的一个元素 因为12是先从左侧入的所以推出的为12
输出结果为 “12”

lpush list2 12      //从左侧往list2中推入value值12
lpush list2 13      //从左侧往list2中推入value值13
lpush list2 13      //从左侧往list2中推入value值13
llen list2              //输出list2有多少个元素
输出结果为 3

Hash哈希

存储的值:有key-value的散列组,其中key是字符串,value是元素,key是唯一的
读写能力:按key进行增加删除

hset hash1 key1 12   //往hash1插入一个key1 值为12
hget hash1 key1        //获取hash1中键为key1的值
输出结果为 12
hset hash1 key2 13   //往hash1插入一个key2 值为13
hset hash1 key3 13   //往hash1插入一个key3 值为13
hlen hash1                //查看hash1有多少个元素
输出结果为 3
hset hash1 key3 14   //修改hash1中key3的值为14
hget hash1 key3        //获取hash1中键为key3的值
输出结果为 14
hmget hash1 key1 key2 //获取hash1中key1和key2的对应值
输出结果为   1) "12"     2) "13"

Set集合

存储的值:各不相同的元素
读写能力:从集合中插入或者删除元素

sadd set1 12   //往set1中插入一个12的元素
scard set1      //查看set1有多少个元素
输出结果为1
sadd set1 13   //往set1中插入一个13的元素
sadd set1 13   //往set1中插入一个13的元素
scard set1      //查看set1有多少个元素
输出结果为 2   //插入3次但是结果为2(集合中value是唯一的)
sismember set1 13 //判断13是否在集合set1中
输出结果为 1
srem set1 13    //把13从set1中移除
sismember set1 13 //判断13是否在集合set1中
输出结果为 0

Sort Set有序集合

存储的值:带分数的score-value有序集合,其中score为浮点,value为元素
读写能力:集合插入,按照分数范围查找

如果两个元素的score一样那么将按照value的字节顺序排序

zadd zset1 10.1 val1 //增加一个分数为10.1值为val1的映射到zset1
zadd zset1 11.2 val2 //增加一个分数为11.2值为val2的映射到zset1
zadd zset1 9.2 val3 //增加一个分数为9.2值为val3的映射到zset1
zcard zset1             //输出zset1有多少个元素
输出结果为 3
zrange zset1 0 2 withscores //输出用分数排序0-2的值以及他们的分数
输出结果为 
1) "val3"
2) "9.1999999999999993"
3) "val1"
4) "10.1"
5) "val2"
6) "11.199999999999999"
zrank zset1 val2     //输出val2的排名
输出结果为 2
zadd zset1 12.2 val3  //修改zset1中值为val3的分数为12.2
zrange zset1 0 2 withscores //输出用分数排序0-2的值以及他们的分数
输出结果为 
1) "val1"
2) "10.1"
3) "val2"
4) "11.199999999999999"
5) "val3"
6) "12.199999999999999"
zadd zset1 12.2 val2  //修改zset1中值为val2的分数为12.2
zrange zset1 0 2 withscores //输出用分数排序0-2的值以及他们的分数
输出结果为   (val2比val3的字母序小所以val2排在val3前面)
1) "val1"
2) "10.1"
3) "val2"
4) "12.199999999999999"
5) "val3"
6) "12.199999999999999"