從零入手Redis緩衝

來源:互聯網
上載者:User
這篇文章主要介紹了關於從零入手Redis緩衝,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

  1. Redis介紹

Redis是一個開源的使用ANSI C語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。從2010年3月15日起,Redis的開發工作由VMware主持。從2013年5月開始,Redis的開發由Pivotal贊助。

redis是一個key-value儲存系統。和Memcached類似,它支援儲存的value類型相對更多,包括string(字串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(雜湊類型)。這些資料類型都支援push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支援各種不同方式的排序。與memcached一樣,為了保證效率,資料都是緩衝在記憶體中。區別的是redis會周期性的把更新的資料寫入磁碟或者把修改操作寫入追加的記錄檔案,並且在此基礎上實現了master-slave(主從)同步。

Redis 是一個高效能的key-value資料庫。 redis的出現,很大程度補償了memcached這類key/value儲存的不足,在部分場合可以對關聯式資料庫起到很好的補充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等用戶端,使用很方便。 [1]

Redis支援主從同步。資料可以從主伺服器向任意數量的從伺服器上同步,從伺服器可以是關聯其他從伺服器的主伺服器。這使得Redis可執行單層樹複製。存檔可以有意無意的對資料進行寫操作。由於完全實現了發布/訂閱機制,使得從資料庫在任何地方同步樹時,可訂閱一個頻道並接收主伺服器完整的訊息發布記錄。同步對讀取操作的可擴充性和資料冗餘很有協助。

redis的官網地址,非常好記,是redis.io。(特意查了一下,網域名稱尾碼io屬於國家網域名稱,是british Indian Ocean territory,即英屬印度洋地區)

目前,Vmware在資助著redis項目的開發和維護。

2. Redis的安裝

解壓安裝檔案

解壓好了後

執行make進行編譯

編譯ok、

進入src目錄


Redis-cli 終端操作

Redis-server 啟動redis服務的檔案

Redis-benchmark壓力測試檔案

Redis-check-xx 檢車備份檔案指令碼

建立Redis運行目錄,並拷貝兩個運行檔案過去

拷貝設定檔過去

3. 啟動Redis服務

前端啟動redis服務成功的標誌

./redis-server

這時有個問題,當前啟動的是不能關的,一關就沒了,所以需要進行修改

停止服務Ctrl+z

先停止掉redis服務

使用後台來啟動redis服務

vim redis.conf

改成yes儲存,設定後台啟動redis

再次啟動

發現還是前端啟動

啟動的時候帶上設定檔一起啟動

查看下redis進程

發現redis已經啟動

4. 簡單使用

設定了三個變數,這三個變數都儲存在記憶體中

如何讀取?

Get!

5. 具體操作

1. Key的操作

在redis裡面,出了“\n”和空格 不能作為名字的組成內容外,其他內容都可以作為key的名字部分,名字長度不做要求

換句話來說,就是變數名稱

代碼

作用

Exists key

是否存在

Del key1 key2 ….

刪除指定的key

Type key

返回給定的key的value類型

Key pattern

返回匹配指定模式的所有的key

Rename oldkey newkey

改名字

Dbsize

返回當前資料庫的key的數量

Expire key seconds

為key指定到期時間

Ttl key

返回key的到期秒數

Select db-index

選擇資料庫

Move key db-index

將key從當前資料庫移動到指定資料庫

Flushdb

刪除當前資料庫中所有的key

Flushall

刪除所有資料庫中的所有key


這裡舉例了一個的使用

2. String類型的操作

String是redis最基本的類型

Redis的string可以包含任何資料,包括jpg圖片或者序列化對象

單個value值最大上限是1G位元組

代碼

作用

Set key value

設定key對應的值為string類型的value

Mset key1 value1…keyN valueN

一次設定多個key的值

Mget key1 key2 … keyN

一次擷取多個key的值

Incr key

對key的值做++操作

Decr key

同上 –操作

Incrby key integer

同incr 加指定值

Decrby key integer

同decr 減指定值

Append key value

給指定key的字串追加value

Substr key start end

返回截取過的key的字串值

3. List鏈表類型的介紹和使用

List類型其實是一個雙向鏈表

如果想要查詢前10個最新的使用者,

要一個個查,太消耗資源

List鏈表示例圖:

通過list鏈表儲存登陸系統的最新5個使用者資訊

新使用者進來,舊的使用者踢出

鏈表該如何操作?

代碼

作用

Lpush key string

在key對應list的頭部添加字串元素

Rpop key

從list的尾部刪除元素,並返回刪除元素

Lien key 返回 key

對應list的長度,key值不存在返回0,如果key對應類型不是list返回錯誤

Rpush key string

同上,在尾部添加

Lpop key

從list的頭部刪除元素,並返回刪除元素

Ltrim key start end

截取list,保留指定區間內的元素


4. Set集合類型

Redis的set是string類型的無序集合。

Set元素最大可以包含(2的32次方-1)個元素

每個集合中的各個元素不能重複

代碼

作用

Sadd key member

添加一個string元素到key對應的set集合中,返回成功1

Srem key member

從key對應·set中移除給定元素,成功返回1

Smove p1 p2 member

從p1對應set中移除member並添加到p2對應set中

Scard key

返回set的元素個數

Sismember key member

判斷member是否存在set中

Sinter key1 key2.。。。

返回所有給定key的交集

Sunion key1 key2

返回所有給定key的並集

Sdiff key1 key2.。

返回所有給定key的差集

Smembers key

返回key對應set的所有元素,結果是無序的


裡面有一個key五個元素

接著又添加一個Linken

5. SortSet排序集合類型操作

和set一樣,sorted set 也是string元素的集合

不同的是,每個元素都會關聯一個權

通過權值可以有序的擷取集合中的元素

案例:

利用sort set實現擷取最熱門的前5文章學習

排序集合中的每個元素都是值,權的組合

代碼

作用

Zadd key score member

添加元素到集合,元素在集合中存在則更新對應score

Zrem key member

刪除指定元素,1成功,0不存在

Zincrby key incr member

按照incr幅度增加對應member的score值,返回score值

Zrank key member

返回指定元素在集合中的排名(下標),集合中元素是安score從小到大排序的

Zrange key start end

類似Irange操作從集合中指定區間的元素,返回的是有序結果

Zrevrange key start end

同上,返回是逆序的

Zcard key

返回集合中元素個數

Zscore key elemet

返回給定元素對應的score

Zremrangebyrank key min max

刪除集合中排名在給點區間的元素


6. 快照持久化

900秒一個Key變化就(快照)儲存

300秒十個key變化就(快照)儲存

一分鐘一萬個key變化就(快照)儲存

這樣控制的好處:

資料修改的頻率非常高,備份的頻率也高,

資料修改的頻率低,備份的頻率也低。

快照持久化儲存的名字



手動發起快照持久化

如果對本機:

7. AOF持久化

本質:把使用者執行的每個“寫”指令(添加,刪除,修改)都備份到檔案中,還原的時候執行具體的“寫“指令

開啟AOF持久化會清空redis內部資料

開啟AOF持久化

設定檔被修改 重啟服務

查看redis進程:Ps –A | grep redis

-9強制殺死進程

啟動一個新的進程

Aof追加持久化的備份頻率

Always 每次收到寫指令就立刻強制寫入磁碟,很慢,但能保持完全的持久化

Everysec 每秒強制寫入磁碟一次,在效能和持久化方面做了很好的折中,推薦

No 完全依賴OS 效能最好,持久化沒保證

8. 主從模式

為了降低每個redis伺服器的負載,可以設定幾個,並作主從模式

一個伺服器負載“寫“

其他伺服器負載“讀”

主伺服器會 自動 同步給從伺服器


修改IP地址和連接埠號碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.