004_Redis的String数据类型

本文详细介绍了 Redis 中 String 类型的使用方法,包括如何设置、获取字符串,设置字符串的同时设置过期时间,替换字符串,以及对字符串进行增删改查等操作。此外,还讲解了如何批量设置和获取字符串,并提供了相关命令的语法和示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. String类型是包含很多种数据类型的特殊类型, 并且是二进制安全的。比如: 序列化的对象进行存储, 比如: 一张图片进行二进制存储, 比如: 一个简单的字符串, 数值等等。string类型的值最大能存储512MB。

2. 设置字符串

2.1. 语法: set key value。

2.2. set命令用于设置给定key的值。如果key已经存储其他值, set就覆写旧值, 且无视类型。

2.3. 如果字符串有空格需要加上引号。如果没有空格也可以不加引号。

2.4. set在设置操作成功完成时, 返回OK。

2.5. 实例

3. 获取字符串

3.1. 语法: get key。

3.2. get命令用于获取指定key的值。如果key不存在, 返回nil。如果key储存的值不是字符串类型, 返回一个错误。

4. 设置key不存在的字符串

4.1. 语法: setnx key value。

4.2. setnx(set if not exists)命令在指定的key不存在时为key设置指定的值。如果key已经存在, 设置失败。

4.3. 设置成功, 返回1。设置失败, 返回0。

4.4. 实例

5. 设置字符串同时设置过期时间

5.1. 语法: setex key seconds value。

5.2. setex命令为指定的key设置值及其过期时间, 过期时间以秒为单位。如果key已经存在, setex命令将会替换旧的值。

5.3. 设置成功时返回OK。

5.4. 过期查询返回nil, 这个key也不存在了。

5.5. 实例

6. 替换字符串

6.1. 语法: getset key value。

6.2. getset命令用于设置指定key的值, 并返回key的旧值。当key没有旧值时, 即key不存在时, 返回nil(这个时候就相当于设置了一个新key)。当key存在但不是字符串类型时, 返回一个错误。

7. 从指定位置替换字符串

7.1. 语法: setrange key offset value。

7.2. setrange命令用指定的字符串覆盖给定key所储存的字符串值, 覆盖的位置从偏移量offset(字节数)开始, offset从0开始计数。如果起始位置超过字符串长度, 多出的位置用空格替换。offset必须大于等于0。

7.3. 返回被修改后的字符串长度。

7.4. 实例

8. 同时设置多个字符串

8.1. 语法: mset key value [key value ...]。

8.2. mset命令用于同时设置一个或多个key-value对。

8.3. 总是返回OK。

8.4. 实例

9. 同时设置一个或多个key不存在的字符串

9.1. 语法: msetnx key value [key value ...]。

9.2. 同时设置一个或多个key-value对, 当且仅当所有给定key都不存在时才能设置成功, 反之失败。

9.3. 当所有key都成功设置, 返回1, 反之返回0。

9.4. 实例

10. 设置字符串同时设置过期时间

10.1. 语法: psetex key milliseconds value。

10.2. psetex命令和setex命令相似, 但它以毫秒为单位设置key的生存时间, 而不是像setex命令那样, 以秒为单位。如果key已经存在, setex命令将会替换旧的值。

10.3. 设置成功时返回OK。

10.4. 实例

11. 获取一个或多个给定key的字符串值

11.1. 语法: mget key1 [key2..]。

11.2. mget命令返回一个或多个给定key的字符串值。如果给定的key里面, 有某个key不存在, 那么这个key返回特殊值nil。

11.3. 返回一个包含所有给定key的值的列表。

11.4. 实例

12. 将key中储存的整形数字增一

12.1. 语法: incr key。

12.2. incr命令将key中储存的整形数字增一。如果key不存在, 那么key的值会先被初始化为0, 然后再执行incr操作。如果值包含错误的类型或字符串类型的值不能表示为整形数字, 那么返回一个错误。本操作的值限制在64位(bit)有符号整形数字表示之内。

12.3. 返回执行incr命令之后key的值。

12.4. 实例

13. 将key中储存的整形数字加上给定的增量值

13.1. 语法: incrby key increment。

13.2. incrby命令将key中储存的整形数字加上指定的增量值。增量也可以为负数, 相当于对指定字段进行减法操作。如果key不存在, 那么key的值会先被初始化为0, 然后再执行incrby命令。如果值包含错误的类型或字符串类型的值不能表示为整形数字, 那么返回一个错误。本操作的值限制在64位(bit)有符号整形数字表示之内。

13.3. 返回加上指定的增量值之后, key的值。

13.4. 实例

14. 将key所储存的数字加上给定的浮点增量值

14.1. 语法: incrbyfloat key increment。

14.2. incrbyfloat命令为key中所储存的数字加上指定的浮点数增量值。增量也可以为负数, 相当于对指定字段进行减法操作。如果key不存在, 那么incrbyfloat会先将key的值设为0, 再执行加法操作。如果值包含错误的类型或字符串类型的值不能表示为数字, 那么返回一个错误。

14.3. 返回执行命令之后key的值。

14.4. 实例

15. 将key中储存的整形数字值减一

15.1. 语法: decr key。

15.2. decr命令将key中储存的整形数字值减一。如果key不存在, 那么key的值会先被初始化为0, 然后再执行decr操作。如果值包含错误的类型或字符串类型的值不能表示为整形数字, 那么返回一个错误。本操作的值限制在64位(bit)有符号整形数字表示之内。

15.3. 返回执行命令之后key的值。

15.4. 实例

16. 将key所储存的整形数字减去给定的减量值

16.1. 语法: decrby key decrement。

16.2. decrby命令将key所储存的整形数字减去指定的减量值。减量也可以为负数, 相当于对指定字段进行加法操作。如果key不存在, 那么key的值会先被初始化为0, 然后再执行decrby操作。如果值包含错误的类型或字符串类型的值不能表示为整形数字, 那么返回一个错误。本操作的值限制在64位(bit)有符号整形数字表示之内。

16.3. 减去指定减量值之后key的值。

16.4. 实例

17. 追加字符串

17.1. 语法: append key value。

17.2. append命令用于为指定的key追加值。如果key已经存在并且是一个字符串, append命令将value追加到key原来的值的末尾。如果key不存在, append就简单地将给定key设为value, 就像执行set key value一样。

17.3. 返回追加指定值之后key中字符串的长度。

17.4. 实例

18. 获取字符串值的长度

18.1. 语法: strlen key。

18.2. strlen命令用于获取指定key所储存的字符串值的字节数。当key储存的不是字符串值时, 返回一个错误。

18.3. 返回字符串值的字节数。当key不存在时返回0。

18.4. 实例

19. 返回key中字符串值的子字符

19.1. 语法: getrange key start end。

19.2. getrange命令用于获取存储在指定key中字符串的子字符串。字符串的截取范围由start(字节数)和end两个偏移量决定(包括start和end在内)。start和end是从0开始计数的。如果end超过了字符串字节数, 截取从起始位置起, 剩余的字符串。如果start或end为负数, 就用字节数加上这个负数, 换算成正数, 如果相加后的结果还为负值, 就直接取0。最终end要大于start才会有结果。

19.3. 返回截取得到的子字符串。

19.4. 实例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值