Redis入门之字符串(String)类型

字符串类型是Redis中最基本的数据类型,它能存储任何形式的字符串,它是二进制安全的,可以存储例如图片的二进制编码等.这是因为Reids的字符串类型并没有直接使用C语言风格的字符串(以空字符结尾的字符数组),而是构建了一种简单动态字符串 (simple dynamic string, SDS)的抽象类型.在后面的文章中会详细介绍Redis中字符串类型的实现.
下面我们一起看一下字符串的使用.

1. 赋值与取值
set key value
get value

set 和 get分别是设置键的值和获取键的值,例如:
Redis字符串类型的设置和获取
如果我们再次为键名为key的键设置值,将会把原来的值覆盖掉,即键的值为键中最后设置的值.

2. 递增与递减数字

Redis中可以存储只有整数的字符串,对于这种字符串,Redis提供了INCR命令,其作用是将当前键的值自增1,并返回自增后的值.用法如下:
递增数字
那么当键的值不是的字符串不是整数,会发生什么情况呢?实践说话:
在这里插入图片描述
当键值不是整数时,会报值不是整数或者超出范围的错误.
与INCR命令类似的是DECR命令,后者的作用是将键的值减1,当值不是整数的字符串时,也会出错.

3. 关于字符串的常用命令
3.1 增加指定的整数

INCRBY key increment
INCRBY 命令可以增加指定的整数.例如:
在这里插入图片描述

3.2 减少指定的整数

DECRBY key decrement
DECRBY 命令可以减少指定的整数.例如:
在这里插入图片描述

3.3 增加指定浮点数

INCRBYFLOAT key increment
INCRBYFLOAT命令的作用是将键的值增加指定的浮点数.例如:
在这里插入图片描述

3.4 向尾部追加值

APPEND key value
APPEND 的作用是向key对应的值后面追加字符串,如果键不存在,则创建该键,并将值设为value.该命令的返回值是追加后字符串的总长度.例如:
在这里插入图片描述
可以看到loveyou之间是没有空格的,如果我们想让两者中间有个空格分隔,可以这样做:
在这里插入图片描述
如果字符串中有空格,需要将字符串包含在引号内.同样,如果字符串中包含回车换行符"\n",也要放在引号内.

3.5 获取字符串的长度

STRLEN key
STRLEN命令的作用是获取字符串的长度
在这里插入图片描述
前面说过Redis中的字符串是二进制安全的,可以存储空格、0等字符,可以和普通字符串一样计入长度中.(注意key2的值love后面有个空格o~)

3.6 同时设置/获得多个键值

mset key0 value0 [key1 value1 ...]
mget key0 [key1 ...]
mse、mget命令的特别之处是它们分别可以同时设置、获取多个键值.例如:
在这里插入图片描述

3.7 位操作

SETBIT key offset value
GETBIT key offset
BITCOUNT key [start] [end]
BITOP operation destkey key1 [key2 ...]
以上四个命令可以对二进制位进行操作,SETBIT可以设置key对应的值的第offset位的值为value;GETBIT则是获取key对应的值的第offset位的值;BITCOUNT是统计key对应的值一段范围(默认是值的全部)中1的个数;BITOP则是对多个字符串进行为运算,如:AND(与)、OR(或)、XOR(亦或)、NOT(非)运算.例如:
在这里插入图片描述

4. 生存时间

在Redis中可以对一个键值对的过期时间,当过期时,Redis会自动将键删除.命令如下:
EXPIRE key seconds
EXPIRE命令是为数据设置过期时间,时间单位为秒.该命令执行成功时返回1,失败或键不存在时返回0.例如:
生存时间
注: flushall命令是将数据库中所有键删除.
如果想知道一个键还有多长时间会被删除,可以使用TTL命令,该命令返回的是键的剩余时间.例如:
在这里插入图片描述
当键设置为永久有效时,TTL命令将会返回-1;当键不存在时,返回-2.例如:

在这里插入图片描述
Redis中还可以取消键的生存时间,即将有过期时间的键设置为永久键.可以使用PERSIST命令.例如:
在这里插入图片描述
除了PERSIST命令外,使用SETMSET同样也会将键设置为永久键;使用EXPIRE会重新设置键的生存时间.
在这里插入图片描述
在这里插入图片描述
EXPIRE命令设置时间的单位是秒,如果想要更精确地设置数据的生存时间,可以使用PEXPIRE命令,该命令与EXPIRE命令的唯一区别是前者设置时间的单位是毫秒.
另外还有两个与生存时间有关的命令:EXPIREATPEXPIREAT,这两个命令与EXPIRE、PEXPIRE的区别在于前者是使用Unix时间戳作为第二参数的,表示数据将在设置的时间点过期,被删除.

参考资料:《Redis入门指南》–李子骅

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值