Java開發你知道這些API事半功倍Redis必知必會的API

Redis必知必會之API

Java開發你知道這些API事半功倍Redis必知必會的API

1.Redis是一個開源、基於鍵值的存儲系統、多種數據結構、功能豐富。

2.Redis支持持久化,斷電不丟數據,對數據的更新異步保存到磁盤上。

3.Redis支持字符串、哈希、列表、集合、有序集合、位圖、超小內存唯一計數、地理信息定位。

4.Redis支持多語言客戶端,支持發佈訂閱,Lua腳本,事物,不依賴外部庫,單線程模型,支持主從複製,高可用,分佈式。

5.Redis典型使用場景有緩存系統、計數器,消息隊列系統、排行榜、社交網絡、實時系統。

6.啟動方式分為

  • 最簡啟動 redis-server
  • 動態參數 redis-server --port 6380
  • 配置文件 redis-server configPath

7.驗證是否啟動

  • ps -ef | grep redis
  • netstat -antpl | grep redis
  • redis-cli -h ip -p port ping

8.Redis客戶端返回值有狀態回覆、錯誤回覆、整數回覆、字符串回覆、多行字符串回覆。

9.常用配置

  • daemonize 是否是守護進程
  • port 對外端口
  • logfile 日誌
  • dir 工作目錄

10.一次只運行一條命令,拒絕長慢命令,不要輕易執行 keys、flushdb、flushall、show lua>

11.其實redis不是單線程 例如如下API fysnc file descriptor、close file descriptor。

Java開發你知道這些API事半功倍Redis必知必會的API

Redis API

1.通用命令

  • keys: 計算所有的鍵 O(n)
  • dbsize: 數據庫大小
  • exists keys: key是否存在
  • del:刪除key
  • expire key seconds: 設置過期時間
  • type key: 獲取key的數據類型
  • ttl key: 查看key的剩餘過期時間
  • persist key: 去掉key的過期時間

2.列表類型

  • rpush key value1 value2 valueN O(1-n)
  • lpush key value1 value2 valueN O(1-n)
  • linsert key before|after value newValue O(n)
  • lpop key
  • rpop key
  • lrem key count value (刪除count個value元素) 0(n)
  • ltrim key start end (按照索引範圍修剪列表) o(n)
  • lrange key start end (包含end) (獲取列表制定索引範圍)
  • lindex key index o(n)
  • llen key
  • lset key index newValue
  • blpop key timeout (lpop的阻塞版本)
  • brpop key timeout (rpop的阻塞版本)
  • lpush + lpop = stack
  • lpush + rpop = queue
  • lpush + ltrim = Capped Collection
  • lpush + brpop = Message Queue

3.字符串類型

  • 場景:緩存、計數器、分佈式鎖
  • get key
  • set key value
  • incr key
  • decr key
  • incrby key k
  • decrby key k
  • setnx key value 值不存在才設置
  • set key value xx 存在才設置
  • mget 批量獲取 O(n)
  • mset 批量設置 O(n)
  • getset key newvalue 設置新值返回舊值
  • append key value 將新值追加到舊值
  • strlen 獲取值的長度
  • incrbyfloat key 3.5 增加對應key 3.5
  • getrange key start end
  • setrange key start value

4.集合類型

  • 無序 無重複 支持集合間操作
  • sadd key element (添加)
  • srem key element (刪除)
  • scard key
  • sismember key element
  • srandmember key count (隨機選出count個元素)
  • spop key (隨機彈出一個元素)
  • smembers key (取出所有元素 小心使用)
  • sscan (遍歷集合)
  • sdiff 差集
  • sinter 交集
  • sunion 並集
  • sadd = 打標籤
  • spop/srandmember = 隨機
  • sadd + sinter = Social Graph

5.有序集合類型

  • zadd key score element O(logN)
  • zrem key element (刪除)
  • zscore key element
  • zincrby key increScore element (增加分數)
  • zcard key (返回個數)
  • zrange key start end withscores (獲取元素) (O(logN + m))
  • zrangebyscore key minScore maxScore
  • zcount key minScore maxScore (O(logN + m))
  • zremrangebyrank key start end (刪除指定排名內的升序元素)
  • zremrangebyscore key start end (刪除指定分數內的升序元素)
  • zrevrank
  • zrevrange
  • zrevrangebyscore
  • zinterstore
  • zunionstore

6.哈希類型

  • hget key filed
  • hset key field value
  • hdel key field
  • hgetall key O(n)
  • hexists key field
  • hlen key 獲取字段數量
  • hmget key field1 field2 O(n)
  • hmset key field1 value1 field2 value2 O(n)
  • hincrby key field value
  • hvals key 返回hash key對應所有field的value O(n)
  • hkeys key 返回hash key對應的所有field O(n)
  • hsetnx key field value
  • hincrby key field intCounter
  • hincrbyfloat key field floatCounter
<code>關注私信回覆:555領取Java高級架構資料、Spring源碼分析、Dubbo、Redis、Netty、zookeeper、Spring cloud、分佈式等/<code>
Java開發你知道這些API事半功倍Redis必知必會的API


分享到:


相關文章: