Spring-Redis 使用

constantinealicia發表於2024-03-14
基本型別:
String
  1. 儲存資料:
  • stringRedisTemplate.opsForValue().set("key", "value");
  1. 獲取資料:
  • String value = stringRedisTemplate.opsForValue().get("key");
  1. 設定資料的過期時間(單位為秒):
  • stringRedisTemplate.expire("key", 60, TimeUnit.SECONDS);
  1. 刪除資料:
  • stringRedisTemplate.delete("key");
  1. 檢查 key 是否存在:
  • boolean exists = stringRedisTemplate.hasKey("key");
  1. 自增或自減操作:
  • Long incrementedValue = stringRedisTemplate.opsForValue().increment("key", 1);
  • Long decrementedValue = stringRedisTemplate.opsForValue().decrement("key", 1);
Hash
  1. 設定 Hash 型別資料:
  • stringRedisTemplate.opsForHash().put("hashKey", "field", "value");
  1. 獲取 Hash 型別資料:
  • String hashValue = (String) stringRedisTemplate.opsForHash().get("hashKey", "field");
List :
  • 向 List 中插入值:
stringRedisTemplate.opsForList().rightPush("listKey", "value1");
  • 從 List 中獲取值:
String value = stringRedisTemplate.opsForList().index("listKey", 0);
Set :
  • 向 Set 中新增值:
stringRedisTemplate.opsForSet().add("setKey", "value1");
  • 檢查值是否存在於 Set 中:
boolean memberExists = stringRedisTemplate.opsForSet().isMember("setKey", "value1");
Sorted Set 型別:
  • 向 Sorted Set 中新增值,並設定分數:
stringRedisTemplate.opsForZSet().add("zsetKey", "value1", 10.0);
  • 獲取指定範圍內的值:
Set<String> rangeValues = stringRedisTemplate.opsForZSet().range("zsetKey", 0, -1);
  • 根據分數範圍獲取元素:
Set<String> rangeByScore = stringRedisTemplate.opsForZSet().rangeByScore("sortedSetKey", 0, 100);
特殊型別:
1. HyperLogLog (基數統計)
HyperLogLog 用於進行基數統計,即對集合中不重複元素的個數進行估計。在 Redis 中,可以使用 HyperLogLog 資料結構來實現這一功能。
使用示例:
// 新增元素到 HyperLogLog stringRedisTemplate.opsForHyperLogLog().add("hyperLogLogKey", "element1", "element2"); // 獲取 HyperLogLog 的基數估計值 Long cardinality = stringRedisTemplate.opsForHyperLogLog().size("hyperLogLogKey");
2. GeoSpatial (地理空間)
GeoSpatial 資料結構用於處理地理位置資訊,如儲存經緯度座標點,並進行附近位置搜尋等操作。
使用示例:
// 新增地理位置資訊 stringRedisTemplate.opsForGeo().add("geoKey", new Point(13.361389, 38.115556), "Palermo"); // 獲取兩個地理位置之間的距離 Distance distance = stringRedisTemplate.opsForGeo().distance("geoKey", "Palermo", "Catania");
3. Bitmaps (點陣圖)
Bitmaps 是一種位陣列資料結構,用於儲存位的狀態(0 或 1),常用於處理一些狀態標記或位運算操作。
使用示例:
// 設定點陣圖中指定位置的值 stringRedisTemplate.opsForValue().setBit("bitmapKey", 0, true); // 獲取點陣圖中指定位置的值 Boolean bitValue = stringRedisTemplate.opsForValue().getBit("bitmapKey", 0);

相關文章