【Redis】Redis学习⑤ - Redis数据类型
一、字符串(string)
- 字符串是所有编程语言中最常见的和最常用的数据类型,而且也是redis最基本的数据类型之一,而且redis中所有的key的类型都是字符串。
- 添加一个key
set key1 value1
get key1
type key1
set name2 jack2 ex 3 #设置自动过期时间
- 获取一个key的内容
get key1
- 删除一个key
del key1
- 批量设置多个key
mset key1 value1 key2 value2
- 批量获取多个key
mget key1 key2
- 追加数据
append key1 append
- 数值递增
set num 10
incr num
- 数值递减
set num 10
decr num
- 返回字符串key长度
strlen key1
二、列表(list)
- 列表是一个双向可读写的管道,其头部是左侧,尾部是右侧,一个列表最多可以包含2^32-1个元素,即4294967295个元素。
- 生成列表并插入数据
lpush list1 jack tom jhon
type list1
- 向列表追加数据
lpush list1 tom
rpush list1 jack
- 获取列表长度
llen list1
- 移除列表数据
rpop list1 #最后一个
lpop list1 #第一个
- 查看列表元素
lrange list1 0 4
- 删除列表
del list1
三、集合(set)
- Set是String类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
- 生成集合key
sadd set1 v1
sadd set2 v2 v4
type set1
type set2
- 追加数值,追加的时候不能追加已经存在的数值
sadd set1 v2 v3 v4
sadd set1 v2
type set1
type set2
- 查看集合的所有数据
smembers set1
smembers set2
- 获取集合的差集
差集:已属于A而不属于B的元素称为A与B的差(集)
sdiff set1 set2
- 获取集合的交集
交集:已属于A且属于B的元素称为A与B的交(集)
sinter set1 set2
- 获取集合的并集
并集:已属于A或属于B的元素称为A与B的并(集)
sunion set1 set2
- 删除集合中元素
srem set1 v2
- 清空集合
del set2
四、sorted set(有序集合)
- Redis有序集合和集合一样也是string类型元素的集合,且不允许重复的成员,不同的是每个元素都会关联一个double(双精度浮点型)类型的分数,redis正是通过分数来为集合中的成员进行从小到大的排序。
- 有序集合的成员是唯一的,但分数(score)却可以重复,集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1),集合中最大的成员数为2^32-1(4294967295,每个集合可存储40多亿个成员)。
- 生成有序集合
zadd zset1 1 v1
zadd zset1 2 v2
zadd zset1 2 v3
zadd zset1 3 v4
type zset1
type zset2
zadd paihangbang 10 key1 20 key2 30 key3
zrevrange paihangbang 0 -1 withscores #显示指定集合内所有key和得分情况
- 批量添加多个数值
zadd zset2 1 v1 2 v2 4 v3 5 v5
- 获取集合的长度数
zcard zset1
zcard zset2
- 基于索引返回数值
zrange zset1 1 3
zrange zset1 0 2
zrange zset1 2 2
- 返回某个数值的索引
zrank zset1 v2
zrank zset1 v3
五、哈希(hash)
- hash是一个string类型的field和value的映射表,hash特别适合用于存储对象,Redis中每个hash可以存储2^32-1键值对
- 生成hash key
hset hset1 name tom age 18
type hset1
- 获取hash key字段值
hget hset1 name
hget hset1 age
- 删除一个hash key的字段
hdel hset1 age
- 获取所有hash表中的字段
hset hset1 name tom age 19
hkeys hset1