Strings
Redis strings存储字节序列,包括text,序列化的对象,还有字节数组。真正意义上来说,strings是redis中最基本的数据类型。他经常被用于缓存,但是它也支持额外的功能,允许你实现计数器、按位执行操作等等。
例子
- 存储并获取string
>SET user:1 salvatore
OK
>GET user:1
"salvatore"
- 存储一个序列化的json string,并且设置其100s的过期时间
>SET ticket:27 "\"{'username':'priya','ticket_id':321}\"" EX 100
- 给一个计数器增加数值
>INCR views:page:2
(integer) 1
>INCRBY views:page:2 10
(integer) 11
限制
默认情况下,一个单独的string,其最大值是256MB
基本的命令
获取和设置strings
- SET 存储一个string的值
- SETNX 当key不存在的时候,存储一个string的value。通常用于实现锁
- GET 获取一个string的值
- MGET 在一个操作中获取多个string的值
管理计数器
- INCRBY 原子地给计数器增长给出的值(当给出的值为负数的时候,则会给计数器减去对应的值)
- 用于操作浮点计数器的命令:INCRBYFLOAT
按位操作
这个需要看bitmaps这个数据类型的文档
性能
大多数的string操作时间复杂度是O(1),这意味着它是高效率的。但是,在使用SUBSTR,GETRANGE,SETRANGE这三个命令的时候要小心,他们的时间复杂度是O(n)。当处理大的string的时候,这些随机访问string的命令可能会引起性能问题。
其他选择
如果你打算以序列化的string存储结构化的数据的话,你可以考虑使用Redis hashes或者RedisJSON