Redis的特点
- 所有数据存储在内存中,高速读写;
- 提供丰富多样的数据类型:string、 list、hash、 set、 sorted set、bitmap、hyperloglog;
- 提供了 AOF 和 RDB 两种数据的持久化保存方式,保证了 Redis 重启后数据不丢失
- Redis 的所有操作都是原子性的,还支持对几个操作合并后的原子性操作,支持事务
通常我们都把数据存到关系型数据库中,但为了提升应用的性能,我们应该把访问频率高且不会经常变动的数据缓存到内存中。Redis 没有像 MysqL 这类关系型数据库那样强大的查询功能,需要考虑如何把关系型数据库中的数据,合理的对应到缓存的 key-value 数据结构中。
设计 Redis Key
一般我们采用的是分段设计法。
使用冒号把 key 中要表达的多种含义分开表示,步骤如下:
- 把表名转化为 key 前缀
- 主键名(或其他常用于搜索的字段)
- 主键值
- 要存储的字段。
如用户表user:
id | name | |
---|---|---|
1 | zj | [email protected] |
2 | ai | [email protected] |
这个简单的表可能经常会有这个的需求:根据用户 id 查询用户邮箱地址,可以选择把邮箱地址这个数据存到 redis 中
set user:id:1:email [email protected];
set user:id:2:email [email protected];
String数据类型的应用场景
string 类型是 Redis 中最基本的数据类型,最常用的数据类型,甚至被很多玩家当成 redis 唯一的数据类型去使用。string 类型在 redis 中是二进制安全(binary safe)的,这意味着 string 值关心二进制的字符串,不关心具体格式,你可以用它存储 json 格式或 JPEG 图片格式的字符串。
数据类型
string 类型是基本的 Key-Value 结构,Key 是某个数据在 Redis 中的唯一标识,Value 是具体的数据。
Key | Value |
---|---|
'name' | 'redis' |
'type' | 'string |
应用场景
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。