Redis_5_String_数据类型

String(字符串类型)

一、常用命令

  • set、get
  • decr、incr(自减、自增)
  • decrby、incrby、incrbyfloat(可指定长度)
  • strlen(获取长度)
  • getset(重新设置值,并返回原value)
  • set key value ex|px 1000(ex设置秒级过期时间 | px设置毫秒级过期时间,可使用setex替换)
  • set key value nx|xx(nx,键不存在,设置成功;xx,键存在,更新成功,可使用setnx替换)

注意:value值为中文占3个字节

基于setnx特性,只有一个客户端能设置成功,可以作为分布式锁的一种实现方案

二、批量命令

  • mset k1 v1 k2 v2 k3 v3
  • mget k1 k2 k3

批量设置和批量获取,提高了开发效率,减少了耗时:

n次get时间 = n次网络时间 + n次命令执行时间

使用mget命令后,n次get时间 = 1次网络时间 + n次命令执行时间

使用批量操作命令,有提高处理效率,但注意每次批量操作的命令不要过多,过多可能造成redis阻塞或网络拥塞

三、不常用命令

  • append key append_value(在原key的value后追加值)
  • setrange key index element(设置指定位置的字符)
  • getrange key start end(获取部分字符)

四、内部编码

对外string类型,内部多种编码实现

  • object encoding key(查看编码命令 )
  • int(8个字节的长整型,纯数字)
  • embstr(小于等于39个字节的字符串)
  • raw(大于39个字节的字符串)

五、典型使用场景

  • 作为缓存层
  • 计数(incr)
  • 共享session(spring-session)
  • 限速(短信验证码发送,限制每分钟获取频率,一天发送次数;限制ip每秒访问次数)

注:key值设置推荐方式“业务名:对象名:id:[属性]

可以在描述键含义的前提下适当减少键的长度,从而减少内存消耗

猜你喜欢

转载自blog.csdn.net/zzl429556205/article/details/88543090