第一節----第一次使用Redis
1 執行Redis
Redis安裝步驟:https://www.jianshu.com/p/e16d23e358c0
命令列切換到Redis安裝目錄,輸入 redis-server.exe redis.windows.conf
Creating Server TCP listening socket 127.0.0.1:6379: bind: No error
解決方法:在命令列中執行
redis-cli.exe
127.0.0.1:6379>shutdown
not connected>exit
然後重新執行redis-server.exe redis.windows.conf,啟動成功!
在Redis根目錄下,啟動另外一個視窗,準備輸入Redis的命令
1.1 字串型別
Redis支援五種資料型別:string(字串),hash(雜湊),list(列表),set(集合)及zset(sorted set:有序集合)。
字串型別設定 SET myKey myValue
獲取字串型別 GET myKey
1.2 鍵值對型別Hash
Redis hash 是一個鍵值(key=>value)對集合。特別可以儲存Java中的物件。因為Java物件有若干個實體屬性。
設值語法:HMSET MapName KeyA ValueA KeyB ValueB
取值語法:HGET MapName KeyName
鍵值對設值 HMSET myMap keyA valueA keyB valueB
鍵值對取值 HGET myMap keyA
HGET myMap keyB
1.3 List列表(佇列)
Java中的List介面的最大特點就是有索引,即有序的。
Redis中的List型別,它與Java中類似。Redis的List型別的資料,它按照插入順序排序。你可以新增一個元素到列表的頭部(左邊)或者尾部(右邊)。
設值語法(加入佇列): LPUSH ListName Value
獲取範圍內的佇列的值: LRANGE ListName startIndex endIndex
從結果來看,它是預設將新的資料插入到佇列的頭部。
為佇列設定:LPUSH myList valueA
LPUSH myList valueB
LPUSH myList valueC
獲取佇列的指定範圍的值:
LRANGE 0 10
獲取佇列頭的元素:
LRANGE 0 0
1.4 SET集合
在Java中,SET介面的實現類是一個不包含重複元素的 collection。以前通過原始碼也發現,HashSet其實就是一個HashMap。所以,SET介面的實現複雜度是O(1)。
在Redis中,Set是string型別的無序集合。相當於只存放Hash雜湊型別的Key。
設值語法:SADD SetName Value
取值語法:SMEMBERS SetName
為SET集合設定: SADD mySet ValueA
SADD mySet ValueB
SADD mySet ValueC
遍歷所有的SET集合:
SMEMBERS mySet
若Redis中已經存在此Key,返回0。沒有的話,返回1。那究竟是覆蓋呢,還是插入失敗呢?
根據結果顯示,好像重複插入沒什麼意義,最終的目的就是讓這個SET集合裡面存在這個KEY。返回值可能表示的是對指集合的影響,所以返回0就不足為奇。如果沒對原結果集產生影響,那麼就可理解為插入失敗。
1.5 ZSET有序的不重複集合
可大致理解為LinkedHashMap,但是它是按照新增時分配的權重Score排序的。
每個元素都會關聯一個double型別的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。
新增語法:ZADD SetName Score Value
為有序的Set集合插入資料:ZADD SSet 0 a
ZADD SSet 1 b
ZADD SSet 2 c
根據權重遍歷指定區間的資料:
ZRANGEBYSCORE SSet 0 10 預設升序,什麼是升序,就是權重越來越大。