Redis的数据类型

因为Redis是非关系型数据库,所以Redis中存储数据都是使用键值对存储。

String

String类型是Redis最基本的类型。String类型是二进制安全的,也就是redis的String可以包含任何数据。

常用命令

命令 功能
set key value 设置key的值为value
get key 获取key的值
setex key seconds value 设置key的过期时间,单位是秒
expire key seconds 设置key的过期时间,单位是秒
ttl key 获取key的剩余过期时间,单位是秒
incr key 将key的值增加1
decr key 将key的值减少1

Hash

Redis中的Hash类型是键值对集合,他由key filed value组成,适合存储对象

常用命令

命令 功能
hset key field value 设置key的field的值为value
hget key field 获取key的field的值
hgetall key 获取key的所有field和value
hdel key field 删除key的field

List

List是Redis中最简单的字符串列表,按顺序排序,适合存储列表数据

常用命令

命令 功能
lpush key value 将value添加到key的左侧
rpush key value 将value添加到key的右侧
lpop key 删除key的左侧的元素
rpop key 删除key的右侧的元素
lrange key start stop 获取key的start到stop的元素(下标)

Set

Set是Redis中String类型的无序集合

常用命令

命令 功能
sadd key value 将value添加到key中
smembers key 获取key的所有元素
srem key value 删除key的value
scard key 获取key的元素个数
sismember key value 判断key的value是否存在

ZSet

ZSet和Set一样,是无序集合,所以元素都是唯一的,但是ZSet会给每一个元素关联一个double类型的分数,Redis通过分数来为集合中的
成员从小到大排序

常用命令

命令 功能
zadd key score member 将member添加到key中,score为member的分数
zrange key start stop 获取key的start到stop的元素(分数)
zrem key member 删除key的member
zcard key 获取key的元素个数
zscore key member 获取key的member的分数

应用场景

类型 简介 特性 场景
String 字符串,二进制安全 可以包含任何数据,或者图片、序列化对象
Hash 哈希表,键值对集合 适合存储对象,并且可以想数据库只修改某一项数据 存储,读取,记录用户属性
List 双向链表,有序集合 增删快,提供操作某一段元素的API 朋友圈时间线,消息队列
Set 元素唯一,无序 添加、删除查找的复杂度都是O(1).为集合提供求交并补差集等操作 存储用户关系(共同好友),统计访问网站所有独立ip
ZSet 有序集合,元素唯一 数据插入集合时,会自动排序 排行榜,带权重的消息队列