1. 程式人生 > >redis五大類型用法

redis五大類型用法

成員 obj 命令 給定 www yii pop tle tar

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集合
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;
序號 命令說明
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] 遞增地叠代集合中的元素
 
 http://www.cnblogs.com/yanan7890/p/6617305.html

redis五大類型用法