RedisTemplate - 常用集合之bound...Ops系列

一、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的自增長鍵,前提是綁定值的類型是doublelong類型。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);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章