Redis——学习之路一(初识redis)
在接下來的一段時間里面我要將自己學習的redis整理一遍,下面是我整理的一些資料:
Redis是一款依據BSD開源協議發行的高性能Key-Value存儲系統(cache?and?store),所以redis是可以查看源代碼https://github.com/MSOpenTech/redis/tree/3.0?。
它是通常被稱為數據結構服務器,因為值(value)可以使字符串(string)、哈希(hashes)、列表(list)、集合(sets),和有序集合(sorted?sets)類型。
在將redis類型以前我們先在自己的電腦上安裝一下redis,打開這個鏈接選擇2.8.2400這個版本,下載msi。msi是安裝版本,zip是免安裝版本。區別在于msi安裝版本安裝后可以以服務的形式存在。需要注意的是redis安裝包沒有32位系統的只有64位的
安裝到D盤中,如下
接下來再看看我們的服務有一個redis的服務,而且該服務已經啟動。
然后我就使用(redis-cli.exe)客戶端連接redis服務。連接redis服務器的命令為redis-cli.exe -h 127.0.0.1 -p 6379 -auth?密碼
先開打運行程序輸入“cmd”然后如下:
因為默認端口為6379所有可以不用-p 6379?,同時剛安裝默認情況下沒有密碼,所以不需要密碼。
然后我在命令行輸入"echo "hello redis" ",如果返回"hello redis"?說明連接成功,這樣我們就完成了redis安裝,也知道如何連接redis服務。
下面開始簡單介紹字符串(string)、哈希(hashes)、列表(list)、集合(sets),和有序集合(sorted?sets)類型。
?
字符串(string)
String類型是最常用的一種數據類型,普通的Key/value存儲都可以歸為此類。一個Key對應一個Value,String類型是二進制安全的。Redis的String可以包含任何數據,可以存放json數據,圖像數據等等。value存儲最大數據量為512M。 主要命令有 set key value #將字符串值value關聯到key get key #返回key所關聯的字符串值 decr key #將key中儲存的數字值減一 incr key #將key中存儲的數字值加一 哈希(hashes) redis hash是一個string類型的field和value的映射表。它的添加,刪除操作都是O(1)(平均)。hash特別適合用于存儲對象。 在上面服務器配置文件中包含hash-max-zipmap-entries 64 #配置字段最多64個。
hash-max-zipmap-value 512 #配置value最大為512字節。
主要命令有 hset?key?field?#將哈希表key中的域field的值設為value hget key field #返回哈希表key中給定域field的值。 以及hdel、hgetall、hkeys、hvals等 列表(list) redis的list類型其實就是一個每個子元素都是string類型的雙向鏈表。所以[lr]push和[lr]pop命令的算法時間復雜度都是O(1),另外list會記錄鏈表的長度。所以llen操作也是O(1).鏈表的最大長度是(2的32次方-1)。我們可以通過push,pop操作從鏈表的頭部或者尾部添加刪除元素。這使得list既可以用作棧,也可以用作隊列。 主要命令有 lset?key?index?value?#將列表key下標為index的元素的值設置為value。當然不可以直接使用 要先使用命令?lpush?kye?value?#將一個或多個value插入到列表key的表頭 然后我們再lpush幾個值 lrange?key?start?stop?#返回列表key中指定區間內的元素,區間以偏移量start和stop指定。 lrange listkey 0 -1 表示顯示所有數據 lrange listkey 0 0 表示顯示第一個元素 以及llen、rpop、lpop等 集合(sets) redis的set是string類型的無序集合。set元素最大可以包含(2的32次方-1)個元素。set的是通過hash table實現的,所以添加,刪除,查找的復雜度都是O(1)。 主要命令有 sadd?key?member #將一個或多個member元素加入到集合key當中,已經存在于集合的member元素將被忽略。 smembers key #返回集合key中的所有成員。 以及sdiff、sinter、sunion、scard等 有序集合(sorted?sets) 和set一樣sorted set也是string類型元素的集合,不同的是每個元素都會關聯一個double類型的score。sorted set的實現是skip list和hash table的混合體當元素被添加到集合中時,一個元素到score的映射被添加到hash table中,所以給定一個元素獲取score的開銷是O(1),另一個score到元素的映射被添加到skip list并按照score排序,所以就可以有序的獲取集合中的元素。添加,刪除操作開銷都是O(log(N))和skip list的開銷一致,redis的skip list實現用的是雙向鏈表,這樣就可以逆序從尾部取元素。 主要命令有 zadd?key?score?member?#將一個或多個member元素及其score值加入到有序集key當中。 zrange key start stop [withscores]?#返回有序集key中,指定區間內的成員。其中成員的位置按score值遞增(從小到大)來排序。還有一個可選分值 以及zcard、zcount、zrank、zrem、zscore等 以上是自己個人學習的記錄,如果有什么不對的地方請大家指正,歡迎評論!轉載于:https://www.cnblogs.com/GoogleGetZ/p/6380641.html
總結
以上是生活随笔為你收集整理的Redis——学习之路一(初识redis)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Computer Vision Revi
- 下一篇: [转载] mysql 索引中的USING