Redis【3】—— String类型
Redis【3】—— String类型
四、各类型指令介绍
keys *
FLUSHALL # 清空数据库中所有的 k-v,不可在生产环境上使用!
keys *
(一)String类型
1. 基础指令
# NX 不存在才设置
# XX 存在才设置
set k1 v1
get k1
set k2 v2 ex 5 # 设置过期时间
ttl k2
keys * # k2 已经过期
set k2 v2 NX # 不存在才设置
get k2
set k2 v2-2 NX # nil - 不存在才设置,当前已存在
get k2
set k2 v2-2 XX # 存在才设置
get k2
set k3 v3 XX # nil - 存在才设置,当前不存在
get k3 # nil
# 一次设置多个 k-v,可以减少网络请求的消耗
# 但是也别设置太多,免得把 Redis 阻塞住了
mset k3 v3 k4 v4 k5 v5
mget k3 k4 k5
keys *
setnx k6 v6 # 不存在才设置
setnx k6 v6-6 # 不存在才设置
get k6
setex k7 5 v7
ttl k7
get k7
psetex k7 5000 v7
pttl k7
get k7
set k1 9
get k1
incr k1 # ++i;若key不存在会把value当0,返回1
set k2 hello
get k2
incr k2 # value 不能是字符串
set k2 1.5
get k2
incr k2 # value 不能是小数
set k2 2222222222222222222222222222222
get k2
incr k2 # value 不能是特别大的数
decr k1 # --i;若key不存在会把value当0,返回-1
get k1
# incrby key 10 # i += 10
# incrby key -1 # i += (-1)
# decrby key 10 # i -= 10
# decrby key -1 # i -= (-1)
# incrbyfloat key 0.5 # i += 0.5
set key hello
append key world # append 返回的是长度的字节,具体长度需要结合具体的字符编码
get key
append k hi~ # 会直接为不存在的key设置value
get k
set key 你好
append key 世界
get key # 返回的结果是不认识的二进制
redis-cli --raw # 使用 --raw 让Redis尝试翻译二进制数据
get key
# 在Redis中指定的区间是 [ , ]
set key HelloWorld
get key
getrange key 0 -1 # -1 是最后一个字符
getrange key 1 -2
set key 你好
get key
getrange key 0 -1
getrange key 1 -2 # 奇奇怪怪的符号,这个 getrange 的强行切字节
set key HelloWorld
setrange key 5 world
get key
setrange -1 D # 无法使用负数来达成 倒数 的操作
setrange k1 1 hello # 不存在的key,旧版本的Redis会使用 0x00 来填充
# strlen 获取到的字符串的长度,单位是字节
keys *
get key
strlen key
set key 你好
get key
strlen key # utf8字符集中汉字是3byte
strlen kk # key不存在返回0
2. 内部编码
set k1 123 # 当 long 来存储
OBJECT encoding k1 # int
set k2 hello # 若干存储小数,那么就当作字符串来存储
OBJECT encoding k2 # embstr
set k3 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
OBJECT encoding k3 # raw
原文地址:https://blog.csdn.net/LU_ZE_XX/article/details/136405035
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!