Redis 字符串(String)
Redis 字符串(String)
Redis 字符串数据类型的相关命令用于管理 redis 字符串值,基本语法如下:
语法
> COMMAND KEY_NAME
实例
> set name asa OK > get name asa
字符串命令
SET
Redis SET 命令用于设置给定 key 的值。如果 key 已经存储其他值, SET 就覆写旧值,且无视类型。
语法
> SET KEY_NAME VALUE
返回值
SET 在设置操作成功完成时,才返回 OK 。
实例
> set name asa OK > get name asa
Get
Redis Get 命令用于获取指定 key 的值。如果 key 不存在,返回 nil 。如果key 储存的值不是字符串类型,返回一个错误。
语法
> GET KEY_NAME
返回值
返回 key 的值,如果 key 不存在时,返回 nil。 如果 key 不是字符串类型,那么返回一个错误。
实例
> get task null > get name asa
Getrange
Redis Getrange 命令用于获取存储在指定 key 中字符串的子字符串。字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)。
语法
> GETRANGE KEY_NAME start end
返回值
截取得到的子字符串。
实例
> set line "this is a good day!" OK > getrange line 0 -1 this is a good day! > getrange line 0 5 this i
Getset
Redis Getset 命令用于设置指定 key 的值,并返回 key 的旧值。
语法
> GETSET KEY_NAME VALUE
返回值
返回给定 key 的旧值。 当 key 没有旧值时,即 key 不存在时,返回 nil 。
当 key 存在但不是字符串类型时,返回一个错误。
实例
> getset name lili asa > getset job collect null
Getbit
Redis Getbit 命令用于对 key 所储存的字符串值,获取指定偏移量上的位(bit)。
语法
> GETBIT KEY_NAME OFFSET
返回值
字符串值指定偏移量上的位(bit)。
当偏移量 OFFSET 比字符串值的长度大,或者 key 不存在时,返回 0 。
实例
> setbit bit 10 1 0 > getbit bit 10 1
Mget
Redis Mget 命令返回所有(一个或多个)给定 key 的值。 如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。
语法
> MGET KEY1 KEY2 .. KEYN
返回值
一个包含所有给定 key 的值的列表。
实例
mget bit name lili
Setbit
Redis Setbit 命令用于对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。
语法
> Setbit KEY_NAME OFFSET
返回值
指定偏移量原来储存的位。
实例
> SETBIT bit 10086 1 1 > GETBIT bit 10086 1 > GETBIT bit 100 0
Setex
Redis Setex 命令为指定的 key 设置值及其过期时间。如果 key 已经存在, SETEX 命令将会替换旧的值。
语法
> SETEX KEY_NAME TIMEOUT VALUE
返回值
设置成功时返回 OK 。
实例
> setex test 10 tfs OK > get test tfs > ttl test 1
Setnx
Redis Setnx(SET if Not eXists) 命令在指定的 key 不存在时,为 key 设置指定的值。
语法
> SETNX KEY_NAME VALUE
返回值
设置成功,返回 1 。 设置失败,返回 0 。
实例
> setnx test lili 1 > setnx test lili 0
Setrange
Redis Setrange 命令用指定的字符串覆盖给定 key 所储存的字符串值,覆盖的位置从偏移量 offset 开始。
语法
> SETRANGE KEY_NAME OFFSET VALUE
返回值
被修改后的字符串长度。
实例
> get line this is a good day! > setrange line 6 abc 19 > get line this iabc good day!
Strlen
Redis Strlen 命令用于获取指定 key 所储存的字符串值的长度。当 key 储存的不是字符串值时,返回一个错误。
语法
> STRLEN KEY_NAME
返回值
字符串值的长度。 当 key 不存在时,返回 0。
实例
> strlen bit 1261 > strlen test 4
Mset
Redis Mset 命令用于同时设置一个或多个 key-value 对。
语法
> MSET key1 value1 key2 value2 .. keyN valueN
返回值
总是返回 OK 。
实例
> mset name1 lili name2 tom OK
Msetnx
Redis Msetnx 命令用于所有给定 key 都不存在时,同时设置一个或多个 key-value 对。
语法
> MSETNX key1 value1 key2 value2 .. keyN valueN
返回值
当所有 key 都成功设置,返回 1 。 如果所有给定 key 都设置失败(至少有一个 key 已经存在),那么返回 0 。
实例
> Msetnx name3 lili name4 tom 0 > get name4 null > get name3 tom
Msetnx
Redis Msetnx 命令用于所有给定 key 都不存在时,同时设置一个或多个 key-value 对。
语法
> MSETNX key1 value1 key2 value2 .. keyN valueN
返回值
当所有 key 都成功设置,返回 1 。 如果所有给定 key 都设置失败(至少有一个 key 已经存在),那么返回 0 。
实例
> Msetnx name3 lili name4 tom 0 > get name4 null > get name3 tom
Psetex
Redis Psetex 命令以毫秒为单位设置 key 的生存时间。
语法
> MSETNX key1 value1 key2 value2 .. keyN valueN
返回值
设置成功时返回 OK 。
实例
> PSETEX mykey 1000 "Hello" OK
Incr
Redis Incr 命令将 key 中储存的数字值增一。
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
语法
>INCR KEY_NAME
返回值
执行 INCR 命令之后 key 的值。
实例
> incr user_count 1 > incr user_count 2 > incr user_count 3
Incrby
Redis Incrby 命令将 key 中储存的数字加上指定的增量值。
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCRBY 命令。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
语法
> INCRBY KEY_NAME INCR_AMOUNT
返回值
加上指定的增量值之后, key 的值。
实例
> incrby user_count 10 13
Incrbyfloat
Redis Incrbyfloat 命令为 key 中所储存的值加上指定的浮点数增量值。
如果 key 不存在,那么 INCRBYFLOAT 会先将 key 的值设为 0 ,再执行加法操作。
语法
> INCRBYFLOAT KEY_NAME INCR_AMOUNT
返回值
执行命令之后 key 的值。
实例
> set stock_price 0.05 OK > incrbyfloat stock_price 0.05 0.1
Decr
Redis Decr 命令将 key 中储存的数字值减一。
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
语法
> DECR KEY_NAME
返回值
当所有 key 都成功设置,返回 1 。 如果所有给定 key 都设置失败(至少有一个 key 已经存在),那么返回 0 。
实例
> decr user_count 12
Decrby
Redis Decrby 命令将 key 所储存的值减去指定的减量值。
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECRBY 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
语法
> DECRBY KEY_NAME DECREMENT_AMOUNT
返回值
减去指定减量值之后, key 的值。
实例
> decrby user_count 10 2 > decrby user_count 10 -8
Append
Redis Append 命令用于为指定的 key 追加值。
如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。
如果 key 不存在, APPEND 就简单地将给定 key 设为 value ,就像执行 SET key value 一样。
语法
> APPEND KEY_NAME NEW_VALUE
返回值
追加指定值之后, key 中字符串的长度。
实例
> get name lili > append name _cat 8 > get name lili_cat
思考
1、场景某网站统计用户登录次数
- 网站有1亿个用户,有经常登录的,也有不经常登录的
- 如何来记录用户的登录信息
- 如何查询活跃用户:比如:一周内,登录3次的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码