Redis的数据类型
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 | 有序集合,元素唯一 | 数据插入集合时,会自动排序 | 排行榜,带权重的消息队列 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 花海!
