redis-02:数据类型

Redis 是一款高性能的键值存储系统,支持五种数据类型:字符串(string)、哈希(hash)、列表(list)、集合(set)和有序集合(zset)。字符串类型可以存储512MB的数据,适合存储二进制安全的值。Redis 的哈希类型适合存储对象,列表常用于消息队列和最新内容展示,集合提供唯一元素存储,而有序集合则支持排序功能。此外,Redis 还提供了 key 的过期时间设置,以及 incr 和 decr 操作进行数值增减。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)

注意:redis中的KeyValue是区分大小写的,命令不区分大小写redis是单线程 不适合存储大容量的数据

 

key操作

1.沟通命令,查看状态:ping

2.查看当前数据库中 key 的数目:dbsize

3.切换库命令:select db Redis 默认使用 16 个库,从 15。每个数据库的数据是隔离的不能共享,并且基于单机才有,如果是集群就没有数据库的概念

4.删除当前库的数据:flushdb  flushall

5.查询所有的  keys * 

6.判断 key 是否存在 :exists key 

7.设置 key 的生存时间,超过时间,key 自动删除。单位是秒:expire key seconds

8.Setex 命令为指定的 key 设置值及其过期时间。如果 key 已经存在, SETEX 命令将会替换旧的值。SETEX mykey 60 redis

9.返回 key 的剩余生存时间: ttl key

10.查看 key 所存储值的数据类型返回值:type key

11.删除存在的 key del key  用于删除已存在的键,不存在的 key 会被忽略。 

 

Redis Expire 命令用于设置 key 的过期时间,key 过期后将不再可用。单位以秒计。

 

 

String(字符串)

redis 最基本的类型,一个 key 对应一个 value

string 类型是二进制安全的。意思是 redis string 可以包含任何数据。比如jpg图片或者序列化的对象。

string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB

 

将字符串值 value 设置到 key 中:set key value

获取 key 中设置的字符串值语法: get key

key 中储存的数字值加 1 incr key

将 key 中储存的数字值减 1decr key

如果 key 存在, 则将 value 追加到 key 原来旧值的末尾如果 key 不存在, 则将 key 设置值为 value append key value

返回 key 所储存的字符串值的长度:  strlen key

 

Incr 命令将 key 中储存的数字值增一Decr 命令将 key 中储存的数字值减一

如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行操作。

如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。

本操作的值限制在 64 (bit)有符号数字表示之内。

Stringredis内部存储默认就是一个字符串,被redisObject所引用。

当遇到incr,decr等操作时会转成数值型进行计算,此时redisObjectencoding字段为int

 

hash

Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象

Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。

hash 类型十分适合存储对象类数据,相对于在 string 中介绍的把对象转化为 json 字符串存储,hash 的结构可以任意添加或删除‘字段名’,更加高效灵活。

 

list

Redis 列表(List)

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)

一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)

应用场景

(1) 消息队列

  redis list 数据类型对于大部分使用者来说,是实现队列服务的最经济,最简单的方式。

(2) “最新内容”

因为 list 结构的数据查询两端附近的数据性能非常好,所以适合一些需要获取最新数据的场景,比如新闻类应用的 “最近新闻”。

 

 

Set

Redis 集合(Set)

Redis Set String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1))

set 类型提供了多个 set 之间的聚合运算,如求交集、并集、补集,这些操作在 redis 内部完成,效率很高。

应用场景

1. “共同好友列表”

  社交类应用中,获取两个人或多个人的共同好友,两个人或多个人共同关注的微博这样类似的功能,用 MySQL 的话操作很复杂,可以把每个人的好友 id 存到集合中,获取共同好友的操作就可以简单到一个取交集的命令就搞定。

zset

Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。

有序集合的成员是唯一的,分数(score)却可以重复

应用场景

1.根据好友的“亲密度”排序显示好友列表。

2.文章的阅读量或点赞量对文章列表排序

ZADD key score1 member1

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值