共計(jì) 3261 個(gè)字符,預(yù)計(jì)需要花費(fèi) 9 分鐘才能閱讀完成。
自動(dòng)寫代碼機(jī)器人,免費(fèi)開通
這篇文章將為大家詳細(xì)講解有關(guān) redis 中怎么用,丸趣 TV 小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
首先我們來(lái)介紹下 redis 中的五種類型:
字符串(String)、哈希 / 散列 / 字典(Hash)、列表(List)、集合(Set)、有序集合(sorted set)。
Controller:@Resource RedisTemplate String, String redisTemplate;
總括:
redisTemplate.opsForValue();// 操作字符串
redisTemplate.opsForHash();// 操作 hash
redisTemplate.opsForList();// 操作 list
redisTemplate.opsForSet();// 操作 set
redisTemplate.opsForZSet();// 操作有序 set
String:
1.redisTemplate.opsForValue().set(key,value));
2.redisTemplate.opsForValue().get(key));
3.redisTemplate.opsForValue().get(key, start, end);
4.redisTemplate.opsForValue().getAndSet(key, value);
5.redisTemplate.opsForValue().getBit(key, offset);// 下方注釋
6.redisTemplate.opsForValue().multiGet(keys);
7.redisTemplate.opsForValue().setBit(key, offset, value);// 下方注釋
8.redisTemplate.opsForValue().set(K key, V value, long timeout, TimeUnit unit);//TimeUnit 是 timeout 的類型, 如毫秒 \ 秒 \ 天等
9.redisTemplate.opsForValue().setIfAbsent(key, value);
10.redisTemplate.opsForValue().set(K key, V value, long offset);// 博主此處未做 java 驗(yàn)證
11.redisTemplate.opsForValue().size(key));
12.redisTemplate.opsForValue().multiGet(Collection K keys);
13.redisTemplate.opsForValue().multiSetIfAbsent(Map ? extends K, ? extends V
14. 同 8
15\16\17\18\19.redisTemplate.opsForValue().increment(K key, long delta); 或.increment(K key, double delta);
20.redisTemplate.opsForValue().append(key, value);// 在 key 鍵對(duì)應(yīng)值的右面追加值 value
可以看到并沒(méi)有刪除等方法, 博主研究了一下可以這樣:21.del key——21.redisTemplate.opsForValue().getOperations().delete(key);
.setBit(key, offset, value):key 鍵對(duì)應(yīng)的值 value 對(duì)應(yīng)的 ascii 碼, 在 offset 的位置 (從左向右數(shù)) 變?yōu)?value.(此處感謝 @參考文章對(duì)我理解的幫助), 由于二進(jìn)制只有 0 和 1, 此處 value 只能取 0 和 1, 如圖, 其他值是超出范圍的
.getBit(key, offset): 獲取鍵對(duì)應(yīng)值的 ascii 碼的在 offset 處位值.
@ascii 碼對(duì)照表
Hash:
1.redisTemplate.opsForHash().delete(H key, Object… hashKeys);//… 表示可以傳入多個(gè) map 的 key,用,隔開。或用數(shù)組傳值
2.redisTemplate.opsForHash().hasKey(key, hashKey);
3.redisTemplate.opsForHash().get(key, hashKey);
4.redisTemplate.opsForHash().entries(key);// 返回 map 集合
5、6.redisTemplate.opsForHash().increment(H key, HK hashKey, long delta);// 或 increment(H key, HK hashKey, double delta);;
7.redisTemplate.opsForHash().keys(key);// 返回 map 的 key 集合 Set
8.redisTemplate.opsForHash().size(key);
9.redisTemplate.opsForHash().multiGet(H key, Collection HK hashKeys);
10.redisTemplate.opsForHash().putAll(H key, Map ? extends HK, ? extends HV m);
11.redisTemplate.opsForHash().put(key, hashKey, value);
12.redisTemplate.opsForHash().putIfAbsent(key, hashKey, value);
13.redisTemplate.opsForHash().values(key);// 返回 map 中的 value 集合 List;
List:
redisTemplate.opsForList().leftPush(key, value);// 從左向右存壓棧
redisTemplate.opsForList().leftPop(key);// 從左出棧
redisTemplate.opsForList().size(key);// 隊(duì) / 棧長(zhǎng)
redisTemplate.opsForList().range(key, start, end);// 范圍檢索, 返回 List
redisTemplate.opsForList().remove(key, i, value);// 移除 key 中值為 value 的 i 個(gè), 返回刪除的個(gè)數(shù);如果沒(méi)有這個(gè)元素則返回 0
redisTemplate.opsForList().index(key, index);// 檢索
redisTemplate.opsForList().set(key, index, value);// 賦值
redisTemplate.opsForList().trim(key, start, end);// 裁剪,void, 刪除除了[start,end] 以外的所有元素
redisTemplate.opsForList().rightPopAndLeftPush(String sourceKey, String destinationKey);// 將源 key 的隊(duì)列的右邊的一個(gè)值刪除,然后塞入目標(biāo) key 的隊(duì)列的左邊,返回這個(gè)值
注意: 要緩存的對(duì)象必須實(shí)現(xiàn) Serializable 接口, 因?yàn)?Spring 會(huì)將對(duì)象先序列化再存入 Redis, 否則報(bào)異常 nested exception is java.lang.IllegalArgumentException: DefaultSerializer requires a Serializable……//;;/
Set:
redisTemplate.opsForValue().getAndSet(key, value)
關(guān)于“redis 中怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
向 AI 問(wèn)一下細(xì)節(jié)