1.redis数据类型概述
数据类型 | 存储的值 | 读写能力 |
---|---|---|
String | 可以是字符串、整数或浮点,统称为元素 | 对字符串操作 对整数类型加减 |
List | 一个序列集合且每个节点都包好了一个元素 | 序列两端推入、或弹出元素 修剪、查找或移除元素 |
Set | 各不相同的元素 | 从集合中插入或者删除元素 |
Hash | 有key-value的散列组,其中key是字符串,value是元素 | 按照key进行增加删除 |
Sort Set | 带分数的score-value有序集合,其中score为浮点,value为元素 | 集合插入,按照分数范围查找 |
2.string类型具体操作
【1】string类型概述
key | value(string/int/float) |
【2】设置(set命令)或获取(get命令)string类型的值
H:\>cd redis
H:\Redis>redis-cli.exe -h 127.0.0.1 -p 6379 //连接redis服务 -h 服务器地址 -p 端口号
127.0.0.1:6379> set string1 yejianfeng
OK
127.0.0.1:6379> get string1
"yejianfeng"
127.0.0.1:6379>
【3】string类型的数字计算(增加incr,减值decr)
127.0.0.1:6379> set string2 4 //设置string2为4
OK
127.0.0.1:6379> get string2
"4"
127.0.0.1:6379> incr string2 //string2自增(默认加1)
(integer) 5
127.0.0.1:6379> get string2
"5"
127.0.0.1:6379> decrby string2 2 //string2减去2
(integer) 3
127.0.0.1:6379> get string2
"3"
2.list类型具体操作
【1】list类型概述
有序列表,有序指的是从左到右还是从右到左,允许从列表的左边或右边推入或弹出元素
【2】从左边推入元素,从右边弹出元素
//使用lpush是从边推入,rpop是从右边退出
//队列的结构是先进先出
127.0.0.1:6379> lpush list1 12 //从左边推入元素12
(integer) 1
127.0.0.1:6379> lpush list1 13 //从左边推入元素13
(integer) 2
127.0.0.1:6379> rpop list1 //从右边弹出元素,结果弹出第一个是12,说明了队列是先进先出
"12"
//list里面可以存在相同的元素,这一点与set类型不同
127.0.0.1:6379> lpush list 12
(integer) 1
127.0.0.1:6379> lpush list 13
(integer) 2
127.0.0.1:6379> lpush list 13
(integer) 3
127.0.0.1:6379> llen list //获取list的长度为3
(integer) 3
3.set类型的具体操作
set类型提供了无序的方式才存储多个不同的元素,在set类型中每个元素的值都不一样,用户可以快速的对元素中的值进行添加、删除以及检查一个元素是否在这个集合中
127.0.0.1:6379> sadd set1 12 //往集合set1中添加元素12
(integer) 1
127.0.0.1:6379> scard set1 //查看集合set1的长度
(integer) 1
127.0.0.1:6379> sadd set1 13
(integer) 1
127.0.0.1:6379> sadd set1 13 //第二次集合set1中添加元素13,返回0,表示插入失败,表名set集合的元素各不相同
(integer) 0
127.0.0.1:6379> scard set1 //返回2,set1中只有两个元素
(integer) 2
127.0.0.1:6379> sismember set1 13 //判断set1中是否有13这个元素
(integer) 1
127.0.0.1:6379> srem set1 13 //删除set1中13这个元素
(integer) 1
127.0.0.1:6379> sismember set1 13 //13已经不再set1集合当中了
(integer) 0
4.hash类型的具体操作
哈希类型也叫作散列类型,让用户能将多个键值对存储到redis键里面去,键值对的键是字符串,值是元素。
最常用的哈希命令包括
- 添加、删除键值对的命令
- 获取所有键值对的命令
- 对键值对中的值自增自减的命令
127.0.0.1:6379> hset hash1 key1 12 //给键hash1添加键值对(key1:12)
(integer) 1
127.0.0.1:6379> hget hash1 key1 //获取键hash1中键为key1的值
"12"
127.0.0.1:6379> hset hash1 key2 13
(integer) 1
127.0.0.1:6379> hset hash1 key3 13
(integer) 1
127.0.0.1:6379> hlen hash1 //获取hash1的键值对的个数
(integer) 3
127.0.0.1:6379> hset hash1 key3 14 //修改hash1中键为key3的值
(integer) 1
127.0.0.1:6379> hget hash1 key3
"14"
127.0.0.1:6379> hmget hash1 key1 key2 //获取hash1中键为key1,key2的值
1) "12"
2) "13"
5.sort set类型具体操作
sort set类型也叫有序分数集,塔河哈希类型很相似,它存储的也是一个映射,它的映射是分数和元素的映射,分数是浮点型的,
sort set 可以看做一个排行榜,排行榜还隐藏了一个排行的属性。
【1】value 是全局唯一
【2】若两个value的分值一样,那就按照value的字典顺序排序
H:\Redis>redis-cli.exe -h 127.0.0.1 -p 6379
127.0.0.1:6379> zadd zset1 10.1 val1 //给zset1添加映射(10.1:val1)
(integer) 1
127.0.0.1:6379> zadd zset1 11.2 val2
(integer) 1
127.0.0.1:6379> zadd zset1 9.2 val3
(integer) 1
127.0.0.1:6379> zcard zset1 //查询zset1中元素个数
(integer) 3
127.0.0.1:6379> zrange zset1 0 2 withscores //按照0-2排名的顺便打印分数
1) "val3"
2) "9.1999999999999993"
3) "val1"
4) "10.1"
5) "val2"
6) "11.199999999999999"
127.0.0.1:6379> zrank zset1 val2 //查看val2的排名
(integer) 2
127.0.0.1:6379> zadd zset1 12.2 val3 //修改val3的值改为12.2
(integer) 0
127.0.0.1:6379> zrange zset1 0 2 withscores //按照0-2排名的顺便打印分数
1) "val1"
2) "10.1"
3) "val2"
4) "11.199999999999999"
5) "val3"
6) "12.199999999999999"
127.0.0.1:6379> zadd zset1 12.2 val2 //修改val2的值也改为12.2
(integer) 0
127.0.0.1:6379> zrange zset1 0 2 withscores val2==val3值,但是排名val2>val3
1) "val1"
2) "10.1"
3) "val2"
4) "12.199999999999999"
5) "val3"
6) "12.199999999999999"