redis的value类型之String详解

string 类型又分为 字符串, 数值 , bitmap

1. 字符串

首先明白存储的是字节,并非是字符串

操作字符串的命令

SET key value [EX seconds|PX milliseconds|EXAT timestamp|PXAT milliseconds-timestamp|KEEPTTL] [NX|XX] [GET]

在这里插入图片描述
参数说明:
ex: 生存时间单位秒
px: 生存时间单位毫秒
exat: 到期时间(用时间戳表示到期时间,单位时秒
pxat: 到期时间(用时间戳表示到期时间,单位时毫秒
nx: redis中该key不存在时才能设置, 可以用作分布式锁
xx: redis中该key存在时才能设置

SETNX key value

只有该key不存在时才能设置值

GETSET key value

设置新的值返回旧的值
在这里插入图片描述

GETDEL key

返回值并且删除key
在这里插入图片描述

GETEX key [EX seconds|PX milliseconds|EXAT timestamp|PXAT milliseconds-timestamp|PERSIST]

返回value并且设置生存时间或者到期时间

SETEX key seconds value

设置值并且给key 设置生存时间单位时秒

PSETEX key milliseconds value

设置值并且给key 设置生存时间单位时秒

GETRANGE key start end

start: 开始索引
end : 结束索引
在这里插入图片描述

字符串aaaa的索引如下:
在这里插入图片描述

SETRANGE key offset value

offset: 开始索引
value :替换的值
替换字符串的部分,超出字符串长度也可以添加
在这里插入图片描述

MSET key value [key value …]

批量添加 (并非原子操作)

MGET key [key …]

批量查询
在这里插入图片描述

MSETNX key value [key value …]

批量设置值只有所有的key不存在时才能成功, 操作保持原子性
在这里插入图片描述

APPEND key value

追加字符串
在这里插入图片描述

STRLEN key

返回字符串所占字节的长度

中文操作:
在这里插入图片描述
英文操作:
在这里插入图片描述

操作数值的命令

INCR key

该key的value是interge时 给value 加 1
在这里插入图片描述

INCRBY key increment

该key的value是interge时 给value 加 increment
在这里插入图片描述

INCRBYFLOAT key increment

给value加increment
在这里插入图片描述

DECR key

该key的value是interge时 给value 减 1

DECRBY key decrement

该key的value是interge时 给value 减 decrement
在这里插入图片描述
在这里插入图片描述

DECRBY key decrement

该key的value是interge时 给value 减 decrement
在这里插入图片描述

操作bitmap的命令

位存储的原理图:
在这里插入图片描述

SETBIT key offset value

设置值:key: 键 offset: 索引位置 value: 该二进制位上的值
对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。
位的设置或清除取决于 value 参数,可以是 0 也可以是 1 。
当 key 不存在时,自动生成一个新的字符串值。
字符串会进行伸展(grown)以确保它可以将 value 保存在指定的偏移量上。当字符串值进行伸展时,空白位置以 0 填充。
offset 参数必须大于或等于 0 ,小于 2^32 (bit 映射被限制在 512 MB 之内)。
在这里插入图片描述

BITCOUNT key [start end]

计算给定字符串中,被设置为 1 的比特位的数量。start和end表示:字节的索引
一般情况下,给定的整个字符串都会被进行计数,通过指定额外的 start 或 end 参数,可以让计数只在特定的位上进行。
start 和 end 参数的设置和 GETRANGE 命令类似,都可以使用负数值:比如 -1 表示最后一个位,而 -2 表示倒数第二个位,以此类推。

不存在的 key 被当成是空字符串来处理,因此对一个不存在的 key 进行 BITCOUNT 操作,结果为 0
在这里插入图片描述

BITPOS key bit [start] [end]

查找索引为start字节和索引为end字节之间,bit 第一次出现的偏移量,下面的例子:
bitpos k1 1 0 1: 表示在0号字节和1号字节之间,第一次出现1的位图的偏移量,1第一次出现在0号字节上,偏移量是1
bitpos k1 1 1 1: 表示在1号字节和1好字节之间(其实就是1号字节),第一次出现的1的位图偏移量,很显然1在1号字节第一次出现的偏移量是9,因为1号字节的偏移量是从8开始
在这里插入图片描述

BITOP operation destkey key [key …]

对一个或多个保存二进制位的字符串 key 进行位元操作,并将结果保存到 destkey 上。
在这里插入图片描述

应用场景:

1.统计一段时间内用户登录的次数

在这里插入图片描述

2. 统计一段时间内有多少用户登陆过

在这里插入图片描述

3.统计浏览量,收藏数, 点赞数,可以用incr 命令

参考:https://www.cnblogs.com/sunny-miss/p/13387408.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值