2.4 Redis数据类型_String 🎉
2.4 Redis数据类型_String 🎉
String是Redis最基本的类型,一个key对应一个value。String是二进制安全的,意味着String可以包含任何数据,比如序列化对象或者一张图片。String最多可以放512M的数据。
- set
用于设置给定 key 的值。如果 key 已经存储其他值, set 就重写旧值,且无视类型。
set k1 v1
- get
用于获取指定 key 的值。如果 key 不存在,返回 nil
get key1
- append
将给定的value追加到key原值末尾。
append key1 value1
提示
如果 key 已经存在并且是一个字符串, append 命令将 value 追加到 key 原来的值的末尾。
如果 key 不存在, append 就简单地将给定 key 设为 value ,就像执行 set key value 一样。
- strlen
获取指定 key 所储存的字符串值的长度。当 key 储存的不是字符串值时,返回一个错误。
strlen key1
- setex
给指定的 key 设置值及time 秒的过期时间。如果 key 已经存在, setex命令将会替换旧的值,并设置过期时间。
setex key1 10 value1
- setnx (分布式锁的解决办法)
只有在key不存在时设置key的值
setnx key value
- getrange
获取指定区间范围内的值,类似between........and 的关系
getrange k5 2 4 # 截取值得2-4位置的字符
- setrange
获取指定区间范围内的值,类似between........and 的关系
setrange key1 1 xxx # 在值得1位置后插入xxx
- incr
将 key 中储存的数字值增一
incr key1
相关信息
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 incr 操作。
如字符串类型的值不能表示为数字、或者是其他类型,那么返回一个错误。
- decr
将 key 中储存的数字值减一。
decr key1
相关信息
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 decr 操作。
如字符串类型的值不能表示为数字、或者是其他类型,那么返回一个错误。
- incrby/decrby key step
将key存储的数字值按照step进行增减。
incrby key1 10
相关信息
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 incrby/decrby 命令。
如字符串类型的值不能表示为数字、或者是其他类型,那么返回一个错误。
- mset
同时设置一个或多个 key-value
mset key1 value1 key2 value2
- mget
返回所有(一个或多个)给定 key 的值。
mget key1 key2
- getset
将给定key值设为value,并返回key的旧值(old value),简单一句话(先get然后立即set)。
getset key1 wcc # value1
get key1 # wcc
使用场景
- 计数器
- 统计多单位的数量
- 粉丝数
- 象缓存存储
- 分布式锁
value 除了是字符串以外还可以是数字。