1. 简介
string 类型是 Redis 中最基本的数据类型,最常用的数据类型,甚至被很多玩家当成 redis 唯一的数据类型去使用。string 类型在 redis 中是二进制安全(binary safe)的,这意味着 string 值关心二进制的字符串,不关心具体格式,你可以用它存储 json 格式或 JPEG 图片格式的字符串。
2. 数据模型
string 类型是基本的 Key-Value 结构,Key 是某个数据在 Redis 中的唯一标识,Value 是具体的数据。
Key | Value |
---|---|
‘name’ | ‘redis’ |
‘type’ | ‘string’ |
3. 应用场景
(1) 存储 MySQL 中某个字段的值
把 key 设计为 表名:主键名:主键值:字段名 eg.
set user:id:1:email 10000@qq.com
(2) 存储对象
string 类型支持任何格式的字符串,应用最多的就是存储 json 或其他对象格式化的字符串。(这种场景下推荐使用 hash 数据类型)
set user:id:1 '[{"id":1,"name":"zj","email":"10000@qq.com"},{"id":1,"name":"zj","email":"10000@qq.com"}]'
(3) 生成自增 id
当 redis 的 string 类型的值为整数形式时,redis 可以把它当做是整数一样进行自增(incr)自减(decr)操作。由于 redis 所有的操作都是原子性的,所以不必担心多客户端连接时可能出现的事务
问题。
incr 对值进行加1操作,如果不是整数,返回错误,如果不存在按照从0开始decr 同incr,但是是减1操作incrby,decrby ,增加减去指定的数
应用场景:比如视频播放次数,点赞次数。
(4)共享session
数据共享的功能,redis作为单独的应用软件用来存储一些共享数据供多个实例访问。
单点登录的一个具体实现
(5)自动定时过期删除
set key value [ex seconds] [px millseconds] [nx|xx]
ex seconds: 键过期时间
px milliseconds: 为键设置毫秒级过期时间
nx: 键必须不存在才可以设置成功,用于添加
xx: 键必须存在,才可以设置成功,用于更新
(6)批量操作
mset,mget
批量设置和获取命令,在操作多个key的时候可以节省网络传输时间
mset key value [key value...]
mget key [key ...]