当前位置: 首页 > news >正文

Redis :String类型

String类型

String是Redis中的字符串,是Redis中最基本的数据类型,直接是按照二进制数据的进行存储

Redis中的所有key都是String类型,但是value是有差别的

常见的命令

set

将String类型的value存储到key中,如果之间有相同的key,则会将之间的值直接的进行覆盖

SET命令⽀持多种选项来影响它的⾏为

EX:设置key的过期时间,单位是秒

注:expire和EX的区别是:expire是给已经存在的key设置过期时间,而EX是给key赋值的同时,给key设置过期时间

PX:设置key的过期时间,单位是毫秒

NX:如果可以不存在才能进行设置,否则将会什么都不返回

XX:更新key的值

 

Mset

一次性设置多个key的值

 

setNX

只允许设置key不存在时的value,设置成功返回1,否则会返回0

setEX

设置过期时间,单位是秒

get

获取key对应的value,如果key不存在,将会返回nil(get只能获得String类型的value)

Mget

一次型获取多个key的值

相较于多次的发送get和set命令,mget和mset可以有效的减少网络时间,使性能更高,不需要多次发送命令

计数命令

incr

将key中对应的String类型的value的值+1

incrby

将key对应的String表示的数字加上对应的值 

decr

将key中对应的String类型的value的值-1

decrby

将key对应的String表示的数字减去对应的值 

incrbyfloat

将key对应的value +/- 去对应的数字

上述的时间复杂度都是O(1)

append

将新的value加到原来的value的后面

append的返回值,长度单位是字节,redis的字符串,不会对字符编码做任何的处理(reids不认识字符,只认字节)--->一个汉字是3个字节,所以只看字节不看字符

getrange

返回key对应的value其中的内容,由start和end确定(左闭右闭),可以使用负数表示倒数,-1表示返回的第一个字符,-2表示返回的倒数第二个字符

setrange

覆盖字串的一部分,从指定的偏移量开始 

strlen

获得String字串的长度,单位是字节

内部编码

String中的内部编码一共有三种

int:8字节的整数   

embstr:压缩字符串   

raw:普通字符串

String类型的应用场景

缓存(redis作为缓存来使用)

在redis中,通常用来存储热点数据,通常把最近使用过的数据定义为热点数据 ,但是随着时间的推移,使用过的数据越来越多,redis中的数据也越来越多,所以我们在redis中写数据的时候,会给数据设置过期时间

计数功能

许多应用都会使用redis作为计数的基础工具,它可以实现快速计数,查询缓存的功能

共享会话

一个分布式的服务将用户的信息保存到各自的服务器中,由于负载均衡的原因,会将用户的请求分布到不同的服务器上,导致用户每次一刷新,都需要重新的登录,所以我们使用redis,将session统一的存储的redis中,⽆论⽤⼾被均衡到哪台Web服务器上,都集中从 Redis 中查询、更新Session信息

手机验证码

很多应⽤出于安全考虑,会在每次进⾏登录时,让用户输⼊⼿机号并且配合给⼿机发送验证码, 然后让用户再次输⼊收到的验证码并进⾏验证,从⽽确定是否是用户本⼈。为了短信接⼝不会频繁访问,会限制用户每分钟获取验证码的频率

可以使用一下伪代码来实现一下redis在手机验证码限制验证时间使用

如果没有超过5次,那么就继续生成验证码发送给用户进行验证。

希望对大家有所帮助!!!!

http://www.xdnf.cn/news/929071.html

相关文章:

  • 第23讲、Odoo18 邮件系统整体架构
  • AIGC行业发展演进:从技术萌芽到智能革命
  • 全面解析:tzst 归档格式的先进性与跨平台文件管理指南
  • RTOS学习之重难点
  • go语言学习 第8章:切片
  • CMake检测C编译器标志功能
  • 基于51单片机的24小时倒计时仿真
  • CAN转PROFINET协议网关之PROFINET转CANfree组态秘诀
  • 10.接雨水
  • 九、【ESP32开发全栈指南: UDP通信服务端】
  • Redis 持久化机制深度解析
  • 反向传播的核心是什么:计算损失函数对可训练参数的梯度=== 损失函数能通过计算图连接到可训练参数
  • 打印高质量日志的10条军规
  • FPGA 可重构技术的实现方法
  • 技术有边界,责任无止境——AI伦理治理的未来挑战与全球路径
  • Welearn 課程時長半小時速刷200小時油猴腳本
  • 类与对象(1)
  • 物联网技术发展与应用研究分析
  • 技巧小结:根据寄存器手册写常用外设的驱动程序
  • 6.7-leetcodeT3170
  • 低成本嵌入式Linux开发方案:RV1106入门
  • 代码注释类型
  • 【win | 自动更新关闭】win11
  • 解决使用nvm安装node报错或者安装后有node没有npm
  • 基于投影寻踪博弈论-云模型的综合评价
  • 设计一套流程引擎队列分发器
  • 2025年AI编程工具推荐
  • 外部排序全解析:从基础到优化策略(王道)
  • go工具库:hertz api框架 hertz client的使用
  • 无线网络扫描与分析工具 LizardSystems Wi-Fi Scanner 25.05