Redis【3】—— String类型

四、各类型指令介绍

keys *
FLUSHALL # 清空数据库中所有的 k-v,不可在生产环境上使用!
keys * 

image.png

(一)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

image.png

# 一次设置多个 k-v,可以减少网络请求的消耗
# 但是也别设置太多,免得把 Redis 阻塞住了
mset k3 v3 k4 v4 k5 v5
mget k3 k4 k5

image.png

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

image.png

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

image.png

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

image.png
image.png

# 在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 来填充

image.png
image.png

# strlen 获取到的字符串的长度,单位是字节
keys *
get key
strlen key

set key 你好
get key
strlen key # utf8字符集中汉字是3byte

strlen kk # key不存在返回0

image.png

2. 内部编码

set k1 123 # 当 long 来存储
OBJECT encoding k1 # int

set k2 hello # 若干存储小数,那么就当作字符串来存储
OBJECT encoding k2 # embstr

set k3 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
OBJECT encoding k3 # raw

image.png

  • 15
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值