数据库
首页 > 数据库> > redis使用的某种场景

redis使用的某种场景

作者:互联网

任务背景是这样的:
我们所有的数据库都是别人定义好的,我们不能改,然后数据库中没有userName这个字段,就是所有的用户姓名都不在数据库中存储。但是前端又要后端给他们返回。我们调用外部接口可以拿到所有用户姓名,但是前端不要所有的用户姓名,要根据条件查找。所以我就把所有的用户姓名和名片id联系到一起,为了提高效率,不用每次都调用接口,就存储redis。
在这里插入图片描述
这个代码之前是调用了外部接口,可以拿到一个json字符串,包含用户信息。
通过json的结构拿到一些想要的信息,再通过getString()这种方法,相当于通过key值拿到value值。
redisTemplate可以直接存放map,如上的方法:redisTemplate.opsForHash(),在用之前要先根据key值删除存储的数据哦~不然会根据key值查出来两个数据。抛异常。
我这里因为查出来的feedId和name都会用,都会根据其中一个去查找另一个。所以我把这两个都分别当成key和value存两次。这样拿到其中一个都可以去找另一个了。
在这里插入图片描述
上图:这是其中用到的一个地方,从redis中往外取,是前端的一个模糊查询,可能根据用户姓名去查找,但是用户姓名在数据库中根本都不存在。我只能通过用户姓名从redis中找到对应的feedId,然后通过feedId去找数据库。
在这里插入图片描述
上图:这是另一个地方,是知道feedId,但是要显示姓名,就需要通过feedId从redis中取出name。

redisTemplate.opsForHash().get(1,2);第一个值是redis的key值,第二个值是map中的key值。
这种模糊查询只能通过全名去查,不然就得遍历字符串,把名字的每一个字都存reids,这个倒是简单,就是不能同姓,不然就抛异常了,这就不现实,所以就干脆不要这个功能了。

薛定谔的宝宝 发布了8 篇原创文章 · 获赞 0 · 访问量 74 私信 关注

标签:场景,key,数据库,redis,feedId,用户,姓名,某种
来源: https://blog.csdn.net/qq_41782623/article/details/104069919