记一次Redis hash的使用过程

   楼主先介绍下使用场景:主要是电视端发起鉴权的,后台通过redis hash判断用户是否订购某个产品,而且这个产品还在有效期内,由于用户量达到了百万级别,如果所有请求都去访问数据库,数据库的压力可想而知。而且这里有个点要注意下:目前发现90%的用户是没有订购行为的,但是也会发起鉴权,如果单纯的键值存在就查询数据库,键值不存在就访问数据,大部分请求还是请求了数据库,数据库的压力还是在的。所以后来,想了个方案,利用hash,结构是userId作为key,product为filed,有效期作为一个以逗号分隔的字符串(20201201235959,20221201235959)的值这种,如果用户存在订购,咱就userId作为key,product为filed,有效期作为一个以逗号分隔的字符串(20201201235959,20221201235959),不存在,咱就userId作为key,product为filed,但是有效期就设置为(20001201235959),系统2000年不存在订购关系的,下次电视端发起了鉴权请求,那就不会查询数据库了,直接读取缓存,返回鉴权通过或者不通过,如果用户刚开始没有订购,后来又订购了,redis中应该存在,userId作为key,product为filed,有效期作为一个以逗号分隔的字符串(20001201235959,20221201235959)这种,只需要读取缓存去遍历下,有一个通过鉴权就通过了。

总结:redis的五种数据结构,虽然都比较熟,最常用的是key-value结构,这是第一次使用hash结构,理论学的再多,只有实践起来才能真正的领悟出来

知人者智,自知者明,胜人者有力,自胜者强。
原文地址:https://www.cnblogs.com/nanfengxiangbei/p/14250629.html