1前言:
? ? 以前總是使用redis 的string宣鄙,list,set來存儲(chǔ)。以前做機(jī)票業(yè)務(wù)的時(shí)候默蚌,使用string來保存很少的飛機(jī)的航班信息冻晤,由于redis 是分片分槽存儲(chǔ)的,在terminal中使用keys 的時(shí)候總是獲取不到想要的結(jié)果绸吸。
? ? 來到sunlands兩個(gè)月鼻弧,發(fā)現(xiàn)項(xiàng)目大部分都是使用redis的hash進(jìn)行存儲(chǔ)〗踝拢考慮了一下攘轩,大概有以下好處:
? ? ? 1 .將具有同一類規(guī)則的數(shù)據(jù)放到redis中的一個(gè)數(shù)據(jù)容器里,便于查找數(shù)據(jù)码俩。
? ? 例如:下面是我們統(tǒng)計(jì)一些機(jī)構(gòu)投放的素材數(shù)度帮,機(jī)構(gòu)名字作key,數(shù)量作為value 都是這樣的類型稿存。在redis中通過“大”key便可以很直觀的查看到這次定時(shí)任務(wù)執(zhí)行出了多少個(gè)機(jī)構(gòu)笨篷,他們分別對(duì)應(yīng)的數(shù)據(jù)是多少!
? ? 2.使用hash 省內(nèi)存瓣履。在hash類型中率翅,一個(gè)key可以對(duì)應(yīng)多個(gè)多個(gè)field,一個(gè)field對(duì)應(yīng)一個(gè)value袖迎。將一個(gè)對(duì)象存儲(chǔ)為hash類型的好處之一:較于每個(gè)字段都單獨(dú)存儲(chǔ)成string類型來說冕臭,更能節(jié)約內(nèi)存腺晾。
3.java中常見操作:(springboot項(xiàng)目)
? ??????
? @Autowired
? RedisTemplateredisTemplate;
? BoundHashOperations boundHashOps =redisTemplate.boundHashOps(CacheKey_AllDaysDurations);
//放值
boundHashOps.put(t,o);
//設(shè)置過期時(shí)間
boundHashOps.expire(90L, TimeUnit.MINUTES);
boundHashOps:就是類似操作一個(gè)hashmap一樣去獲取你想要的結(jié)果