Java開發你知道這些API事半功倍Redis必知必會的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 redisnetstat -antpl | grep redisredis-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。

Redis API

1.通用命令

keys: 計算所有的鍵 O(n)dbsize: 數據庫大小exists keys: key是否存在del:刪除keyexpire 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 keyrpop keylrem key count value (刪除count個value元素) 0(n)ltrim key start end (按照索引範圍修剪列表) o(n)lrange key start end (包含end) (獲取列表制定索引範圍)lindex key index o(n)llen keylset key index newValueblpop key timeout (lpop的阻塞版本)brpop key timeout (rpop的阻塞版本)lpush + lpop = stacklpush + rpop = queuelpush + ltrim = Capped Collectionlpush + brpop = Message Queue

3.字符串類型

場景:緩存、計數器、分佈式鎖get keyset key valueincr keydecr keyincrby key kdecrby key ksetnx 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.5getrange key start endsetrange key start value

4.集合類型

無序 無重複 支持集合間操作sadd key element (添加)srem key element (刪除)scard keysismember key elementsrandmember 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 elementzincrby key increScore element (增加分數)zcard key (返回個數)zrange key start end withscores (獲取元素) (O(logN + m))zrangebyscore key minScore maxScorezcount key minScore maxScore (O(logN + m))zremrangebyrank key start end (刪除指定排名內的升序元素)zremrangebyscore key start end (刪除指定分數內的升序元素)zrevrankzrevrangezrevrangebyscorezinterstorezunionstore

6.哈希類型

hget key filedhset key field valuehdel key fieldhgetall key O(n)hexists key fieldhlen key 獲取字段數量hmget key field1 field2 O(n)hmset key field1 value1 field2 value2 O(n)hincrby key field valuehvals key 返回hash key對應所有field的value O(n)hkeys key 返回hash key對應的所有field O(n)hsetnx key field valuehincrby key field intCounterhincrbyfloat key field floatCounter

<code>關注私信回覆:555領取Java高級架構資料、Spring源碼分析、Dubbo、Redis、Netty、zookeeper、Spring cloud、分佈式等/<code>