一、boundValueOps
簡單的Key-Value
操作。
1、BoundValueOperations
BoundValueOperations
就是一個綁定key
的對象,我們可以通過這個對象來進行與key
相關的操作。
BoundValueOperations boundValueOps = redisTemplate.boundValueOps("lcy");
2、set(V value)
給綁定鍵重新設置值(如果沒有值,則會添加這個值)。
boundValueOps.set("柳成蔭");
3、get()
獲取綁定鍵的值。
String str = (String) boundValueOps.get();
System.out.println(str);
4、set(V value, long timeout, TimeUnit unit)
給綁定鍵設置新值並設置過期時間
boundValueOps.set("九月清晨",30, TimeUnit.SECONDS);
5、getAndSet(V value)
String oldValue = (String) boundValueOps.getAndSet("尋寶遊戲");
String newValue = (String) boundValueOps.get();
6、increment(double delta)
和increment(long delta)
它是Redis的自增長
鍵,前提是綁定值的類型是double
或long
類型。increment
是單線程的,所以它是安全的。在我另外一篇學習博客《秒殺系統》有用到該特性。
BoundValueOperations boundValueOps = redisTemplate.boundValueOps("jyqc");
boundValueOps.set(1);
System.out.println(boundValueOps.get());
boundValueOps.increment(1);
System.out.println(boundValueOps.get());
boundValueOps.increment(1);
System.out.println(boundValueOps.get());
使用該方法,需要注意:需要使用StringRedisSerializer
序列化器才能使用increment
方法,否則會報錯。
7、其他不常用的方法
其他不常用的方法可以參考:boundValueOps的使用
二、boundHashOps
針對hash
的相關操作。
1、BoundHashOperations
BoundHashOperations
就是一個綁定key
的對象,我們可以通過這個對象來進行與key
相關的操作。
BoundHashOperations boundHashOps = redisTemplate.boundHashOps("user");
2、put(HK key, HV value)
新增元素到指定鍵中。
boundHashOps.put("lcy","柳成蔭");
boundHashOps.put("jyqc","九月清晨");
3、get(Object member)
獲取綁定鍵中的成員鍵對應的值value
// 這裏打印的結果也就是 九月清晨
System.out.println(boundHashOps.get("jyqc"));
4、getKey()
獲取指定鍵綁定的key值
// 這裏也就是之前綁定的那個user
System.out.println(boundHashOps.getKey());
5、keys()
獲取綁定鍵的key集合
// [lcy,jyqc]
Set keys = boundHashOps.keys();
6、values()
獲取綁定鍵中的所有key對應的值
// [柳成蔭,九月清晨]
List values = boundHashOps.values();
7、entries()
獲取綁定鍵中的鍵值對
Map entries = boundHashOps.entries();
8、putAll(Map<? extends HK,? extends HV> m)
批量添加鍵值對。
map.put("xbyx","尋寶遊戲");
map.put("brccq","不如吃茶去");
boundHashOps.putAll(map);
9、increment(HK key, long delta)
Redis的自增長特性,在Hash
下的用法。
boundHashOps.increment("qnwb",1);
boundHashOps.increment("qnwb",1);
Long inc = (Long) boundHashOps.get("qnwb");
10、其他不常用的方法
其他不常用的方法可以參考:boundHashOps的用法
三、boundListOps
針對list
的相關操作。
1、BoundListOperations
BoundListOperations
就是一個綁定key
的對象,我們可以通過這個對象來進行與key
相關的操作。
BoundListOperations boundListOps = redisTemplate.boundListOps("lcy");
2、leftPush(V value)
在綁定鍵中左邊添加值
// [c,b,a]
boundListOps .leftPush("a");
boundListOps .leftPush("b");
boundListOps .leftPush("c");
3、leftPop()
從左邊彈出值。
System.out.println(boundListOps.leftPop());
既然有左邊
的操作,那肯定也有右邊
的操作,即把上訴方法的left
改成right
即可。
4、range(long start, long end)
獲取綁定鍵中給定的區間值,從下標0
開始,end可以爲-1
表示最後一位。
List range = boundListOps.range(0, -1);
5、index(long index)
獲取給定位置的值,從下標0
開始
boundListOps.index(2);
6、其他方法的使用
其他的方法可以參考:boundListOps的用法
四、boundSetOps
針對Set
的相關操作。
1、BoundSetOperations
BoundSetOperations
就是一個綁定key
的對象,我們可以通過這個對象來進行與key
相關的操作。
BoundSetOperations boundSetOps = redisTemplate.boundSetOps("lcy");
2、add(V… values)
批量添加值,可以是集合
、數組
、多參數
boundSetOps .add("a","b","c");
3、members()
獲取所有值。
Set members = boundSetOps.members();
4、randomMember()、randomMembers(long count)
隨機獲取一個值、隨機獲取count個值
Object o = boundSetOps.randomMember();
List list = boundSetOps.randomMembers(5);
5、pop()
彈出集合中的值。
Object o = boundSetOps.pop();
6、remove(Object… values)
批量移除元素,可以是集合
、數組
、多參數
boundSetOps.remove("c")
7、其他不常用的方法
其他不常用的方法可以參考:boundSetOps的用法
五、boundZSetOps
針對ZSet
的相關操作。
1、BoundZSetOperations
BoundZSetOperations
就是一個綁定key
的對象,我們可以通過這個對象來進行與key
相關的操作。
BoundZSetOperations boundZSetOps = redisTemplate.boundZSetOps("lcy");
2、add(V value, double score)
綁定鍵中添加值,同時指定值的分數。
boundZSetOps .add("a",1);
boundZSetOps .add("b",2);
3、range(long start, long end)
獲取綁定鍵的指定區間值。
Set range = boundZSetOps.range(0, -1);
4、remove(Object… values)
按值批量刪除綁定鍵中的元素,可以是集合
、數組
、多參數
boundZSetOps.remove(list);
5、其他不常用的方法
其他不常用的方法可以參考:boundZSetOps的用法
六、所有的鍵值對都可以通過delete刪除
// 刪除一個Key
redisTemplate.delete("hashKey");
// 刪除多個Key - 可以是集合、數組、多參數
redisTemplate.delete(list);