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萬能的後人補充吧!