当前位置: 首页 > 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次,那么就继续生成验证码发送给用户进行验证。

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

相关文章:

  • iOS 门店营收表格功能的实现
  • 《Vuejs设计与实现》第 8 章(挂载与更新)
  • SUSE Linux 发行版全面解析:从开源先驱到企业级支柱
  • 青少年编程与数学 01-011 系统软件简介 07 iOS操作系统
  • Srping Cloud Gateway 跨域配置 CorsWebFilter
  • # 主流大语言模型安全性测试(二):英文越狱提示词下的表现与分析
  • C# 类和继承(扩展方法)
  • 【基础算法】枚举(普通枚举、二进制枚举)
  • redis分片集群架构
  • Python60日基础学习打卡Day46
  • 物联网协议之MQTT(二)服务端
  • Qt Test功能及架构
  • Python Cookbook-7.12 在 SQLite 中储存 BLOB
  • 【Java学习笔记】StringBuilder类(重点)
  • 以SMMUv2为例,使用Trace32可视化操作SMMU的常用命令详解
  • stm32内存踩踏一例
  • DeepSeek-R1-0528:开源推理模型的革新与突破
  • AI开发 | 生成式AI在企业软件中的演进形态:从嵌入式到智能体
  • SQL-事务(2025.6.6-2025.6.7学习篇)
  • 零基础玩转物联网-串口转以太网模块如何快速实现与TCP服务器通信
  • 网站怎么做能让人搜到/文章推广平台
  • 南京企业做网站/百度seo原理
  • 赌博游戏网站怎么自己做/网络广告网站
  • 美国亚马逊网站如何做/站长之家排名查询
  • 企业网站导航代码/制作一个网站需要多少费用
  • 聊城做网站优化/长沙网站推广