Redis五大類型:字串(String)、雜湊/散列/字典(Hash)、列表(List)、集合(Set)、有序集合(sorted set)五種Controller:@Resource RedisTemplate<String, String> redisTemplate;總括:redisTemplate.opsForValue();//操作字串redisTemplate.opsForHash();//操作hashredisTemplate.opsForList();//操作listredisTemplate.opsForSet();//操作setredisTemplate.opsForZSet();//操作有序setString:
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.同815\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集合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集合Set8.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);//範圍檢索,返回ListredisTemplate.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 |
|