Redis中String类型的应用场景

简介: Redis中String类型的应用场景

数据类型


Redis中String类型是最基础的类型,非常类似Java中的String类型,都是字符串类型。


特点


1.字符串最大长度为512MB


2.可以自增,自增时线程安全可靠


3.可以用来存贮任何数据结构,比如JSON,XML等


场景一:登录


记录登录错误次数,可以利用String可以自增的结构,用户每输错密码一次,调用 incr 命令来记录记录,key可以为用户的id


记录登录成功后的用户信息 将用户的令牌信息等直接存储到redis,key是用户id,value是用户信息


场景二: 限流


1.用户发送短信验证码限制次数:为了防止某些用户恶意刷短信验证码,比如一分钟只能发送一次,可以这只一分钟过期


2.接口访问限制次数:用来记录每个ip的访问次数,如果访问超过上限,直接在拦截器中返回,减轻服务器的压力


场景三:计数器


利用redis是单线程安全的特点,可以用来记录微服务产生的订单数,用户每天注册数等等


场景四:多线程控制线程安全


利用setnx 命令,比如用户只能点击一次,key设置用户id,value设置为接口地址,调用setnx 如果设置成功,则返回true,证明该线程没有被抢占,可以进行操作。返回false证明该资源被抢占,直接 return 即可


总结


redis 有着高可用和线程安全的特点,用来处理高并发,热点数据查询都是不错的选择。设置过期时间的特点可以用来限制登录次数,限流等


相关文章
|
3月前
|
数据安全/隐私保护
【Azure Function App】PowerShell Function 执行 Get-AzAccessToken 的返回值类型问题:System.String 与 System.Security.SecureString
将PowerShell Function部署到Azure Function App后,Get-AzAccessToken返回值类型在不同环境中有差异。正常为SecureString类型,但部分情况下为System.String类型,导致后续处理出错。解决方法是在profile.ps1中设置环境变量$env:AZUREPS_OUTPUT_PLAINTEXT_AZACCESSTOKEN=false,以禁用明文输出。
144 0
|
6月前
|
存储 JSON JavaScript
[go]byte类型, string 类型, json 类型
本文介绍了Go语言中byte类型的基本概念、特点及用法。byte是8位无符号整数,取值范围为0-255,常用于二进制数据操作,如网络通信和文件读写。文章还详细说明了byte与字符串的转换、遍历byte数据以及与其他类型间的转换。此外,探讨了Go中json.Marshal和json.Unmarshal函数实现[]byte与JSON间的转换,并对比了[]byte与JSON的区别,帮助开发者更好地理解其应用场景与差异。
266 2
|
存储 消息中间件 NoSQL
Redis数据结构:List类型全面解析
Redis数据结构——List类型全面解析:存储多个有序的字符串,列表中每个字符串成为元素 Eelement,最多可以存储 2^32-1 个元素。可对列表两端插入(push)和弹出(pop)、获取指定范围的元素列表等,常见命令。 底层数据结构:3.2版本之前,底层采用**压缩链表ZipList**和**双向链表LinkedList**;3.2版本之后,底层数据结构为**快速链表QuickList** 列表是一种比较灵活的数据结构,可以充当栈、队列、阻塞队列,在实际开发中有很多应用场景。
|
NoSQL Redis
Redis 字符串(String)
10月更文挑战第16天
179 4
|
消息中间件 存储 监控
redis 的List类型 实现 排行榜
【10月更文挑战第8天】
203 2
|
数据可视化 Java
让星星月亮告诉你,通过反射创建类的实例对象,并通过Unsafe theUnsafe来修改实例对象的私有的String类型的成员属性的值
本文介绍了如何使用 Unsafe 类通过反射机制修改对象的私有属性值。主要包括: 1. 获取 Unsafe 的 theUnsafe 属性:通过反射获取 Unsafe类的私有静态属性theUnsafe,并放开其访问权限,以便后续操作 2. 利用反射创建 User 类的实例对象:通过反射创建User类的实例对象,并定义预期值 3. 利用反射获取实例对象的name属性并修改:通过反射获取 User类实例对象的私有属性name,使用 Unsafe`的compareAndSwapObject方法直接在内存地址上修改属性值 核心代码展示了详细的步骤和逻辑,确保了对私有属性的修改不受 JVM 访问权限的限制
205 4
|
存储 NoSQL Redis
redis-set类型
【10月更文挑战第6天】
196 1
|
存储 NoSQL 关系型数据库
Redis的ZSet底层数据结构,ZSet类型全面解析
Redis的ZSet底层数据结构,ZSet类型全面解析;应用场景、底层结构、常用命令;压缩列表ZipList、跳表SkipList;B+树与跳表对比,MySQL为什么使用B+树;ZSet为什么用跳表,而不是B+树、红黑树、二叉树
|
7月前
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?