1. 程式人生 > 資料庫 >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,這個倒是簡單,就是不能同姓,不然就拋異常了,這就不現實,所以就乾脆不要這個功能了。