redis五大類型用法

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驗證

11.redisTemplate.opsForValue().size(key));
12.redisTemplate.opsForValue().multiGet(Collection<K> keys);
13.redisTemplate.opsForValue().multiSetIfAbsent(Map<? extends K, ? extends V> m);
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鍵對應值的右面追加值value
能夠看到並無刪除等方法,博主研究了一下能夠這樣:21.del key------21.redisTemplate.opsForValue().getOperations().delete(key);

 編號 命令 描述說明
1 SET key value 此命令設置指定鍵的值。
2 GET key 獲取指定鍵的值。
3 GETRANGE key start end 獲取存儲在鍵上的字符串的子字符串。
4 GETSET key value 設置鍵的字符串值並返回其舊值。
5 GETBIT key offset 返回在鍵處存儲的字符串值中偏移處的位值。
6 MGET key1 [key2..] 獲取全部給定鍵的值
7 SETBIT key offset value 存儲在鍵上的字符串值中設置或清除偏移處的位
8 SETEX key seconds value 使用鍵和到期時間來設置值
9 SETNX key value 設置鍵的值,僅當鍵不存在時
10 SETRANGE key offset value 在指定偏移處開始的鍵處覆蓋字符串的一部分
11 STRLEN key 獲取存儲在鍵中的值的長度
12 MSET key value [key value …] 爲多個鍵分別設置它們的值
13 MSETNX key value [key value …] 爲多個鍵分別設置它們的值,僅當鍵不存在時
14 PSETEX key milliseconds value 設置鍵的值和到期時間(以毫秒爲單位)
15 INCR key 將鍵的整數值增長1
16 INCRBY key increment 將鍵的整數值按給定的數值增長
17 INCRBYFLOAT key increment 將鍵的浮點值按給定的數值增長
18 DECR key 將鍵的整數值減1
19 DECRBY key decrement 按給定數值減小鍵的整數值
20 APPEND key value 將指定值附加到鍵
.setBit(key, offset, value):key鍵對應的值value對應的ascii碼,在offset的位置(從左向右數)變爲value.(此處感謝@參考文章對我理解的幫助),因爲二進制只有0和1,此處value只能取0和1,如圖,其餘值是超出範圍的
.getBit(key, offset):獲取鍵對應值的ascii碼的在offset處位值.
@ascii碼對照表

 

 

Hash:
1.redisTemplate.opsForHash().delete(H key, Object... hashKeys);//...表示能夠傳入多個map的key,用,隔開。或用數組傳值
2.redisTemplate.opsForHash().hasKey(key, hashKey);
3.redisTemplate.opsForHash().get(key, hashKey);
4.redisTemplate.opsForHash().entries(key);//返回map集合
五、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
序號  命令 說明
1 HDEL key field2 [field2] 刪除一個或多個哈希字段。
2 HEXISTS key field 判斷是否存在散列字段。
3 HGET key field 獲取存儲在指定鍵的哈希字段的值。
4 HGETALL key 獲取存儲在指定鍵的哈希中的全部字段和值
5 HINCRBY key field increment 將哈希字段的整數值按給定數字增長
6 HINCRBYFLOAT key field increment 將哈希字段的浮點值按給定數值增長
7 HKEYS key 獲取哈希中的全部字段
8 HLEN key 獲取散列中的字段數量
9 HMGET key field1 [field2] 獲取全部給定哈希字段的值
10 HMSET key field1 value1 [field2 value2 ] 爲多個哈希字段分別設置它們的值
11 HSET key field value 設置散列字段的字符串值
12 HSETNX key field value 僅當字段不存在時,才設置散列字段的值
13 HVALS key 獲取哈希中的全部值
List:

redisTemplate.opsForList().leftPush(key, value);//從左向右存壓棧
redisTemplate.opsForList().leftPop(key);//從左出棧
redisTemplate.opsForList().size(key);//隊/棧長
redisTemplate.opsForList().range(key, start, end);//範圍檢索,返回List
redisTemplate.opsForList().remove(key, i, value);//移除key中值爲value的i個,返回刪除的個數;若是沒有這個元素則返回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的隊列的右邊的一個值刪除,而後塞入目標key的隊列的左邊,返回這個值
注意:要緩存的對象必須實現Serializable接口,由於 Spring 會將對象先序列化再存入 Redis,不然報異常nested exception is java.lang.IllegalArgumentException: DefaultSerializer requires a Serializable……//;;/

序號  命令 說明
1 BLPOP key1 [key2 ] timeout 刪除並獲取列表中的第一個元素,或阻塞,直到有一個元素可用
2 BRPOP key1 [key2 ] timeout 刪除並獲取列表中的最後一個元素,或阻塞,直到有一個元素可用
3 BRPOPLPUSH source destination timeout 從列表中彈出值,將其推送到另外一個列表並返回它; 或阻塞,直到一個可用
4 LINDEX key index 經過其索引從列表獲取元素
5 LINSERT key BEFORE/AFTER pivot value 在列表中的另外一個元素以前或以後插入元素
6 LLEN key 獲取列表的長度
7 LPOP key 刪除並獲取列表中的第一個元素
8 LPUSH key value1 [value2] 將一個或多個值添加到列表
9 LPUSHX key value 僅當列表存在時,才向列表添加值
10 LRANGE key start stop 從列表中獲取一系列元素
11 LREM key count value 從列表中刪除元素
12 LSET key index value 經過索引在列表中設置元素的值
13 LTRIM key start stop 修剪列表的指定範圍
14 RPOP key 刪除並獲取列表中的最後一個元素
15 RPOPLPUSH source destination 刪除列表中的最後一個元素,將其附加到另外一個列表並返回
16 RPUSH key value1 [value2] 將一個或多個值附加到列表
17 RPUSHX key value 僅當列表存在時纔將值附加到列表

Set:

redisTemplate.opsForValue().getAndSet(key, value)

 序號 命令 說明
1 SADD key member1 [member2] 將一個或多個成員添加到集合
2 SCARD key 獲取集合中的成員數
3 SDIFF key1 [key2] 減去多個集合
4 SDIFFSTORE destination key1 [key2] 減去多個集並將結果集存儲在鍵中
5 SINTER key1 [key2] 相交多個集合
6 SINTERSTORE destination key1 [key2] 交叉多個集合並將結果集存儲在鍵中
7 SISMEMBER key member 判斷肯定給定值是不是集合的成員
8 SMOVE source destination member 將成員從一個集合移動到另外一個集合
9 SPOP key 從集合中刪除並返回隨機成員
10 SRANDMEMBER key [count] 從集合中獲取一個或多個隨機成員
11 SREM key member1 [member2] 從集合中刪除一個或多個成員
12 SUNION key1 [key2] 添加多個集合
13 SUNIONSTORE destination key1 [key2] 添加多個集並將結果集存儲在鍵中
14 SSCAN key cursor [MATCH pattern] [COUNT count] 遞增地迭代集合中的元素
 
 艾瑪,太累了,寫着寫着發現不用這麼麻煩,看到文章中的表了嗎?若在java中找不到相應方法就對照表中的一些」字段「在java中找,確定能找到,並且基本不會浪費多少時間。關於List與Set萬能的後人補充吧!
相關文章
相關標籤/搜索