大家好,我在菜鸟教程的 Redis 页面大概过了一下 redis 使用方法,遇到一些不清楚的地方。
其一是,redis 的基础数据类型中,key 的 api 很丰富,可以设置超时等等,但 list 和 hash 则没有这么丰富,不知道能否手动设置超时?一个典型的业务场景是,后端生成验证码校验,利用 redis 进行多节点间的同步,最方便的方式是 redis 里设置好超时时间,比如五分钟,这样用户申请验证的时候业务端只需要查一下 redis,如果能获取到数据就一切正常,如果获取不到数据就说明该验证码失效了,很清晰。
但是这种验证码如果使用 key 的话很不好管理,key 的数量会泛滥,最好放在同一个 hash 里面,而 hash 我观察网上写的 api,并没有超时功能,想请问一下是就是这么设计的还是有什么别的用法?
===
其二问题是,redis 有没有办法主动限制 hash 的存储量。典型业务场景是进行页面缓存管理,比如我服务器资源有限,我想限制 redis 最多保存一万条缓存,超过数量则按照先进先出方式滚动,这个是业务上的限制需求。我目前了解到的实现方式,以上实现似乎是通过限制 redis 最大内存占用量,然后占用达到最大后触发 redis 的自动清理,来实现限制缓存量,但这种控制感觉不是很精确,而且清理会不会除了指定内容外,对其他不希望清理的内容产生影响呢?请问一下这类需求该怎么实现,谢谢