1 介绍
String 类型是 Redis 中最基础的数据类型,最大可存储 512 MB。
字符串类型是 Redis 中其他4种数据类型的基础,其他数据类型只是组织字符串的形式不同。例如:
列表类型是以列表的形式来组织字符串;
集合类型是以集合的形式来组织字符串。
2 命令
2.1 赋值和取值
SET key value
Get key
2.2 递增数字
INCR key
// 保证了原子操作,避免多客户端出现竞态情况。
3 实践
3.1 文章访问量统计
post:article.id:page.view
Redis 没有要求键的命名,但是比较好的方式是“对象类型:对象ID:对象属性”。
多个单词推荐采用’.'进行分割。
3.2 生成自增ID
在关系型数据库中我们通过设置字段属性为 AUTO_INCREMENT 来实现每增加一条记录自动为其生成一个唯一的递增ID的目的。
而在 Redis 中,使用 对象类型:count 的键来存储当前类型对象的数量,每增加一个新对象时使用 INCR 来递增该键值。这个数值既是当前类型的对象总数,也是该新增对象的ID。
3.3 存储文章数据
文章的标题、正文、作者与发布时间等元素可以使用 序列化 函数将它们转化成一个字符串。
// 缺点是不是也有? 确实是,适合选择其他的数据类型。
4 命令拾遗
4.1 增加指定的整数
INCRBY key increment
4.2 减少指定的整数
DECR key decrement
4.3 增加指定的浮点数
INCRBYFLOAT key increment
127.0.0.1:6379> set bar 2
OK
127.0.0.1:6379> incrby bar 1
(integer) 3
127.0.0.1:6379> incrbyfloat bar 2.22
"5.22"
127.0.0.1:6379> incrbyfloat bar 2E+3
"2005.21999999999999997"
4.4 向尾部追加值
127.0.0.1:6379> incrbyfloat bar 2.1
"4004.10000000000000009"
127.0.0.1:6379> append bar world
(integer) 27
127.0.0.1:6379> get bar
"4004.10000000000000009world"
4.5 获取字符串长度
127.0.0.1:6379> strlen bar
(integer) 27
4.6 同时获得/设置多个键值
127.0.0.1:6379> mset bar1 1 bar2 2 bar3 3
OK
127.0.0.1:6379> mget bar1 bar3
1) "1"
2) "3"
4.7 位操作
127.0.0.1:6379> getbit bar1 1
(integer) 0
127.0.0.1:6379> getbit bar1 0
(integer) 0
127.0.0.1:6379> getbit bar1 7
(integer) 1
127.0.0.1:6379> getbit bar1 2
(integer) 1
127.0.0.1:6379> getbit bar1 3
(integer) 1
127.0.0.1:6379> getbit bar1 4
(integer) 0