一、Redis数据类型
下图展示了Redis的五种数据类型及其介绍。
二、各种数据类型的操作
1. string 类型
- 使用 set 和 get 命令对 string 类型进行设置和获取。
如果出现中文乱码,连接客户端代码改为:redis-cli --raw -h 127.0.0.1 -p 7200
- value 为 int 的加减运算
incr key 对当前键的值进行自增操作
decrby key number 对当前键的值进行减法运算,第三个参数为要减去的数
2. list 类型
- 先进先出,最基本的操作为 push、pop 命令
从左边压入元素,从右边弹出元素:
- list 类型中的元素可以重复
llen key 返回当前列表中元素的个数,即为列表长度。下图是进行了4次 lpush 操作,压入的是两个相同的值。
3. set 类型
- set 类型中元素是无序的,而且不能重复
sadd key value (往 set 中插入元素)
scard key (查看集合中元素的个数)
下图对 set1 进行了三次添加操作,其中两个元素重复了,所以集合 set1 中元素的个数为2
- 查找某一元素是否在集合中
sismember 集合名 元素 (判断元素是否在该集合中)
srem 集合名 元素 (从该集合中删除该元素)
下图中,先判断 5 是否在 set1 中,之后删除5,再次判断,返回0。
4. hash 类型
hash类型也称为散列类型,用户可以将多个键值对存储到一个Redis键(key)中。
- 对键值对操作
hset hash1 key1 value (往 hsah1 中 添加一个键值对)
hget hash1 key1 (获取hash1 中key1 的值)
hlen hash1 (查看hash1中元素的个数)
下图中,往hash1中添加了两个 20,但是key不一样,所以hash1中元素的个数为3。
接着,将hash1中key3的值改为 30:
hmget hash1 key1 ... keyn (一次性获取hash1中多个键的元素)
5. zset(sort set)类型
- 有序分数集合,value 必须是唯一的,score 可以相同。如果两个元素 score 相同,排序则按照 value 的字典顺序排
zadd zset1 5.5 value1 //增加一个分数为5.5,值为value1的映射到 zset1
zcard zset1 //查看 zset1 中元素的个数
zrange zset1 0 2 withscores (将 zset1 中的元素从 0~2 排序并打印出分数)
zrank zset1 value2 (查看 value2 在 zset1 中的排名)
将value 的score 修改为5.5 (和 value1 的score相同),再次排序。可以看到value3 排到了第二名,这是因为 value3 的字典顺序比 value1 靠后。
本篇主要总结了Redis的五种数据类型及其基本操作,至于应用场景,会接着在这里更新。