字符串格式的存储表示存储的值是字符串格式的。

注意:key无需使用引号,value需要使用引号包裹起来。
SET hello "world"
执行下列语句,可以设置两个键值对:
SET number "10086"
SET book "The Design and Implementation of Redis"

如果原来有数据
SET book "english"
再次执行新的语句时,新值覆盖旧值,此时存储的不再是english,而是最新的math
SET book "math"
SET book "english"
-- success here
SET book "math" NX
-- nil returned 因为book已经存在了
NX其实是Not Exists的简写
SET book "english"
SET book "math" XX
-- success here, book exists
使用MSET可以多个键值对一起添加,减少与服务端之间的交互次数:
MSET key1 value1 key2 value2 key3 value3
例如,设置teacher,class,grade三个值
MSET teacher "zhangsan" class "1" grade "1"
放入数据后,我们就是要使用的,获取数据使用GET
GET key
例如,获取book的内容
GET book
如果获取的键不存在,则返回nil
使用MGET可以实现多个键一起读取,减少IO次数
MGET key1 key2 key3
例如获取teacher,class,grade三个键对应的值
MGET teacher class grade
读取旧值,设置新值是把GET和SET集中到一起做了,先GET返回旧值,然后SET新值。
GETSET key new_value
例如,原来book的值是english,我们获取旧值的同时,设置新值math
GETSET book "math"
-- 返回english
如果原来的键不存在,那么GETSET也会成功写入新值,但返回nil(因为旧值不存在)
-- 假如book不存在,执行下列语句会设置成math,但是返回nil
GETSET book "math"
MSETNX适用于批量操作SET... NX,所有键均不存在时,执行成功,至少一个存在了,则执行失败
MSETNX teacher "zhangsan" class "2" grade "5"
使用DEL可以删除键
DEL book
获取键对应的字符串值的长度,例如teacher存储的是zhangsan, 则值的长度为8
STRLEN key
读取teacher对应的字符串的长度
STRLEN teacher
-- 8
针对不存在的键,返回值为0.
STRLEN xxx
-- xxx 不存在时,返回0
使用GETRANGE可以获取指定范围的值
GETRANGE key start end
例如,获取teacher键值对的0-3范围的字符
GETRANGE teacher 0 3
使用SETRANGE可以设置指定位置开始的值,并进行新长度为基准覆盖
SETRANGE key start new_value
例如,我们把teacher对应的zhangsan改为zhangliu
SETRANGE teacher 5 liu
注意:如果开始替换的位置比整个长度大,则会自动补空字符。
使用APPEND可以追加文本到值的末尾,如果key不存在则作为set使用
APPEND key value
给teacher追加年龄信息
APPEND teacher "age is 20"
SET price 100
INCR price
-- 如果price不存在,则赋值为0再自增
DECR price
-- 如果price不存在,则赋值为0再自减
INCRBY key crement
-- 如果price不存在,则赋值为0再自增
DECRBY key crement
-- 如果price不存在,则赋值为0再自减
INCRBYFLOAT key 5.6
-- 自增"5.6",保存最多17位小数
INCRBYFLOAT key -5.6
-- 自减"5.6"
将频繁读取的页面、数据缓存到字符串中,存储在Redis中完成高速读取。
锁的场景是,
1. 有唯一的客户端可以获取到锁
2. 获取锁的客户端才能释放锁
3. 锁被占用时,其他客户端需要等待锁释放后才能获取。
acquire:
SET lock "locking" NX
-- 只有lock不存在时,才会执行成功
release:
DEL lock
-- 删除键