Redis實戰回顧

前言

Remote Dictionary Server(遠程數據的服務),是一種NoSQL技術,是一個基於key-value的高速緩存系統,是目前應用面最廣的緩存系統之一。php

Redis實戰

第一部分 基本概念和注意事項

1.1 Redis是什麼?

Redis:Remote Dictionary Server(遠程數據的服務),是一種NoSQL技術,是一個基於key-value的高速緩存系統,Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基於內存亦可持久化的日誌型、Key-Value數據庫,並提供多種語言的API。相似於Memcache,可是支持更復雜的數據結構List,Set,SortedSet等,而且有持久化[1]的功能。redis

Redis有如下特色:數據庫

  • Redis支持數據的持久化,能夠講內存中數據曹村在磁盤中,重啓的時候能夠再次加載進行使用。
  • Redis不只僅是支持簡單的key-value類型的數據,同事還提供List,Set,Hash等數據結構的存儲。
  • Redis支持數據的備份,即master-salve模式的數據備份。

1.2 Redis緩存的原理

通常場景就是數據緩存服務器,與Memcache的角色保持一致;實質上Redis緩存數據庫服務器在提供的緩存的基礎上,同時提供數據持久化(複製),也就是提供數據庫層面的功能。vim

實現機制:操做時,操做的內存容許設置同步到磁盤上。緩存

1.3 Redis和Memcache的區別?

1.存儲方式:安全

  • Memcache吧數據所有存在內存中,斷電或者重啓服務器會掛掉,不能夠恢復數據,數據大小不能草果內存大小。
  • Redis有部分數據在磁盤上,這樣能保證數據的持久化。能夠按期保存到磁盤(持久化),內存上的數據丟失後能夠經過aof恢復。

2.數據支持類型:服務器

  • Redis在數據支持上要比Memcache多的多。Redis不只僅支持簡單的key-value類型的數據,同時還支持List,Set,Hash等數據結構的存儲。
  • Redis的value最大支持512M,Memcache的value最大支持1M。

3.使用底層模型不一樣網絡

  • 新版本的Redis直接構建了本身的VM機制,由於通常的系統調用系統函數須要耗費必定的時間去移動和請求,有了本身的VM機制就節省了時間。
  • Redis是單核運行的,Memcache是多喝運行的。
  • 讀寫速度:Redis的寫速度與Memcache差很少,讀速度Memcache比Redis快。

4.運行的環境不一樣數據結構

  • RedisRedis只支持Linux上執行,這樣省去了對其餘操做系統的支持,能夠更好的用於本系統環境的優化。

5.對於二者的選擇具體看應用場景架構

  • 若是須要緩存的數據只是key-value這樣簡單的結構時首先考慮Memcache,它是足夠穩定可靠。
  • 若是涉及到存儲,排序等一系列複雜操做時,毫無疑問選擇Redis。

1.4 Redis.conf配置文件說明

1.Redis默認不是以守護進程的方式運行,能夠經過該配置項修改,使用yes啓用守護進程:daemonize no。

2.當Redis以守護進程方式運行時,Redis默認會把pid寫入/var/run/redis.pid文件,能夠經過pidfile制定存儲位置:pidfile /var/run/redis.pid。

3.指定Redis監聽端口,默認端口爲6379.

4.綁定的主機地址:bind 127.0.0.1

5.當客戶端閒置多長時間後關閉鏈接,若是制定爲0,表示關閉該功能。timeout 300。

6.指定日誌記錄級別,Redis總共支持你四個級別debug、verbose、notice、warning、默認是verbose:loglevel verbose。

7.設置數據庫的數量,默認數據庫爲0,可使用SELECT <dbid>命令在鏈接上指定數據庫id:databases 16。

8.指定在多長時間內,有多少次更新數據,就將數據同步到數據文件,能夠多個條件配合:

save <seconds><changes>
//Redis 默認配置文件提供了三個條件
save 900 1
save 300 10
save 60 10000

分別表示900秒(15分鐘)內有1個更改,300秒(5分鐘)內有10個更高,60秒內有10000個更改。

9.指定本地數據文件名,默認值爲dump.rdb:dbfilename dump.rdb

10.指定本地數據庫存放目錄:dir ./

11.設置Redis鏈接密碼,若是配置了鏈接密碼,客戶端在鏈接Redis時須要經過AUTH <password>命令提供密碼,默認關閉:requirepass 輸入密碼

12.登陸服務器的狀態:info

1.5 Redis數據備份與恢復

備份原理和過程:緩存數據庫服務器 =>緩存數據存儲在內存 =>數據庫存儲在磁盤上 =>執行指令,都是在自動在內存中增長數據,數據備份到指定文件位置 => Redis SAVE 命令用於建立當前數據庫的備份。

save:當即存儲快照(內存數據保存到磁盤中)

bgsave:後臺當即存儲快照(內存數據保存到磁盤中)

1.6 Redis事務處理

Redis的事務處理比較簡單。只能保證client發起的事務中的命令能夠連續的執行,並且不會插入其餘的client命令,當一個client在鏈接中發出multi命令時,這個鏈接就進入一個事務的上下文,該鏈接後續的命令不會執行,而是存放到一個隊列中,當執行exec命令時,redis會順序的執行隊列中的全部命令。若是其中執行出現錯誤,執行正確的不會回滾,不一樣於關係型數據庫的事務。

1.MULTI標記一個事務塊的開始(開啓)。

2.EXEC執行因此事務塊內的命令。

127.0.0.1:6379> multi
Ok
127.0.0.1:6379> set user ak
QUEUED
127.0.0.1:6379> set school Tsinghua
QUEUED
127.0.0.1:6379> set Class Pking
QUEUED
127.0.0.1:6379> exec
OK
OK
OK

3.DISCARD取消事務,放棄執行事務塊內的因此命令。

127.0.0.1:6379> multi
Ok
127.0.0.1:6379> set user ak
QUEUED
127.0.0.1:6379> set school Tsinghua
QUEUED
127.0.0.1:6379> discard
OK
127.0.0.1:6379> get user
(nil)

4.WATCH key [key ...]監視一個(或多個)key,若是在事務執行以前這個(或這些)key被其餘命令所改動,那麼事務將被打斷。

127.0.0.1:6379> watch user
Ok
127.0.0.1:6379> watch school
ok

5.UNWATCH取消WATCH命令對全部key的監視。

1.7 Redis安全鏈接命令

1.設置在客戶端鏈接是須要指定的密碼(因爲redis速度至關的快,一秒鐘能夠150K次的密碼嘗試,因此須要設置一個密碼強度很大的密碼)。

設置密碼的方式有兩種:

(1) 使用config set 命令的requirepass 參數,具體格式爲config set requirepass 「password」。 (2) 配置redis.conf 中設置requirepass屬性,後面爲密碼。

輸入認證的方式也有兩種:

(1) 登陸時能夠 redis-cli -a password

(2)登陸後使用 auth password

//1.設置密碼:首先須要進入Redis的安裝目錄,而後修改配置文件redis.conf。根據grep命令的結果,使用vi編輯器修改「# requirepass foobared」 爲「requirepass aklman」,而後保存退出。
$ grep -n requirepass /etc/redis.conf
$ sudo vim /etc/redis.conf

//2.重啓redis-server與redis-cli:
$ sudo service redis-server restart
$ redis-cli
> info
//沒有權限提示
> auth aklman
> info
//成功查詢數據
> exit
//結果代表第一次info命令失敗,在auth認證以後info命令正常返回。最後退出redis-cli。
//或者這樣登陸:
$ redis-cli -a aklman
> info

2.ECHO message:打印字符串

3.PING:查看服務是否運行

4.QUIT:關閉當前鏈接

5.SELECT index:切換到指定的數據庫

1.8 Redis數據持久化aof(Append Only File)

Redis是一個支持持久化的內存數據庫,Redis須要常常將內存中的數據同步到磁盤來保證持久化。

Redis支持兩種持久化方式:

一、snapshottingRDB(快照),將數據存放到文件裏,默認方式。也就是把內存中的內容,壓縮以後,直接存儲到硬盤中,這種方式在啓動的時候,加載速度很是的快!

是將內存中的數據已快照的方式寫入到二進制文件中,默認文件dump.rdb,能夠經過配置設置自動作快照持久化的方式。可配置Redis在n秒內若是超過m個key被修改就自動保存快照。

save   900   1   #900秒有1個keys改變,就會執行持久化
save   300   10  #300秒有10個keys改變,就會執行持久化,改爲save 100 6更方便
save   60    10000 #60秒有1w個keys改變,就會執行持久化

優點:

  • 1.數據庫只包含一個文件,經過文件備份策略,按期配置,恢復系統災難。
  • 2.壓縮文件轉移到其餘介質上。
  • 3.性能最大化,Redis開始持久化時,分叉出進程,由進程完成持久化工做,避免服務器進程執行I/O操做,啓動效率高。

劣勢:

  • 1.沒法高可用:系統必定在定時持久化以前宕機,數據還沒寫入,數據已經丟失。
  • 經過fock分叉進程完成工做,數據集大的時候,服務器中止幾百毫秒甚至1秒。

總結:

  • redis是一個內存服務器,咱們要操做的數據都存儲在內存裏面的。訪問速度是很是的快的,可是咱們的數據想要存儲到硬盤,就要持久化。持久化的時候,就有持久化的機制,機制就有快照持久化;這種持久化是經過時間與key的改變來肯定的。
  • 默認的配置是很是好的配置,說明被改變的值,在沒有持久化的時候,是在內存裏面的。這個時候若是服務器有異常,這些在內存裏面的值,都會被清空!若是服務器異常以後,再次啓動,咱們就會從持久化的文件裏面讀取數據到內存,以前沒有持久化的數據,就在也找不到了。

二、 Append-only file(縮寫爲aof),將讀寫操做存放到文件中。

因爲快照方式在必定間隔時間作一次,因此若是Redis意外down掉的話,就會丟失最後一次快照後的全部修改。

aof比快照方式有更好的持久化性,是因爲使用aof時,redis會將每個收到的寫命令都經過write函數寫入到文件中當redis啓動時會經過從新執行文件中保存的寫命令來在內存中從新創建整個數據庫的內容。

因爲os會在內核中緩存write作的修改,因此可能不是當即寫到磁盤上,這樣aof方式的持久化也仍是有可能會丟失一部分數據。能夠經過配置文件告訴redis咱們想要經過fsync函數強制os寫入到磁盤的時機。

配置文件中的可配置參數:

appendonly   yes     //啓用aof持久化方式
#appendfsync  always //收到寫命令就當即寫入磁盤,最慢,可是保證了數據的完整持久化
appendfsync   everysec  //每秒中寫入磁盤一次,在性能和持久化方面作了很好的折中
#appendfsync  no     //徹底依賴os,性能最好,持久化沒有保證

參數說明:

  • always :老是保存執行的命令到咱們的文件裏面。任何一個的改變,都要保存到咱們的文件裏面。時時的寫文件,這個就會和IO相關,咱們的速度就會變慢。
  • everysec :每一秒中持久化一次。每一秒有多少改變都進行持久化!就是把咱們一秒以內的寫操做,修改操做,寫進咱們的文件裏面。
  • no :就是根據咱們系統的IO來隨機操做。
  • 每一秒中有600個key被改變,這個時候,若是有異常服務器掛了。咱們就失去了600個KEY。

優點:

  • 1.同步:
  • 每秒同步:異步完成,效率高,一旦系統宕機,修改的數據丟失;
  • 每修改同步:同步持久化,每分鐘發生的變化記錄到磁盤中,效率低,安全;
  • 不一樣步
  • 2.日誌寫入操做追加模式append:系統宕機,不影響存在的內容,寫入一半數據,若系統崩潰,下次啓動redis,redis-check-aof工具解決數據一致性。
  • 3.若是日誌過大,自動重寫機制,修改的數據寫入到到磁盤文件,建立新文件,記錄產生的修改命令,重寫切換時,保證數據安全。
  • 4.格式清晰的日誌文件,完成數據的重建

劣勢:

  • 對於相同數據文件,相比RDB,AOF文件較大
  • 效率低

總結:對比兩個持久化

  • 快照持久化是把內存中的數據,壓縮以後,直接存儲到硬盤裏面的。啓動服務器的時候,直接拷貝到內存就能夠直接使用了。
  • AOF持久化是把咱們的操做語句存儲到文件裏面,啓動服務器的時候,會執行這些語句,寫在咱們的內存裏面。寫操做會慢於拷貝!!
  • AOF能夠作到每一秒持久化一次;快照持久化是時間和key的改變來匹配的。

1.9 Redis的主從模式(讀寫分析模式)

Redis經過主從模式能夠容許多個slave(副) server擁有和master(主) server相同的數據庫副本。從服務器只能讀,不能寫。

1.Redis Replication的工做原理:

  • Slave與master創建鏈接,發送sync同步命令。
  • Master會啓動一個後臺進程,將數據庫快照保存到文件中,同時Master主進程會開始收集新的寫命令並緩存。
  • 後臺完成保存後,就將此文件發送給Slave。
  • Slave將此文件保存到磁盤上。

原理解讀:
在Slave啓動並鏈接到Master以後,它將主動發送一個SYNC命令。此後Master將啓動後臺存盤進程,同時收集全部接收到的用於修改數據集的命令,在後臺進程執行完畢後,Master將傳送整個數據庫文件到Slave,以完成一次徹底同步。而Slave服務器在接收到數據庫文件數據以後將其存盤並加載到內存中。此後,Master繼續將全部已經收集到的修改命令,和新的修改命令依次傳送給Slaves,Slave將在本次執行這些數據修改命令,從而達到最終的數據同步。

若是Master和Slave之間的連接出現斷連現象,Slave能夠自動重連Master,可是在鏈接成功以後,一次徹底同步將被自動執行。

總結:

  • 當從服務器鏈接上主服務器時候,咱們的主服務器就會把數據發送給從服務器,這些數據都是二進制,第一次鏈接的時候,是全量拷貝。
  • 以後主服務器有任何數據的修改,都會發送給從服務器,如今發送都是修改的數據,就叫增量拷貝。
  • 只要主從之間斷開過,再次鏈接,就會實現一次全量拷貝。

2.Redis Replication的特色:

  • 1.同一個Master能夠同步多個Slaves。
  • 2.多個slave能夠鏈接同一個master外,還能夠鏈接到其餘的slave(當master重啓後,相連的slave轉變爲master)。
  • 3.Slave一樣能夠接受其它Slaves的鏈接和同步請求,這樣能夠有效的分載Master的同步壓力。所以咱們能夠將Redis的Replication架構視爲圖結構。
  • 4.Master Server是以非阻塞的方式爲Slaves提供服務。因此在Master-Slave同步期間,客戶端仍然能夠提交查詢或修改請求。
  • 5.Slave Server一樣是以非阻塞的方式完成數據同步。在同步期間,若是有客戶端提交查詢請求,Redis則返回同步以前的數據。
  • 6.爲了分載Master的讀操做壓力,Slave服務器能夠爲客戶端提供只讀操做的服務,寫服務仍然必須由Master來完成。即使如此,系統的伸縮性仍是獲得了很大的提升(提升了系統的可伸縮性。)。
  • 7.Master能夠將數據保存操做交給Slaves完成,從而避免了在Master中要有獨立的進程來完成此操做。

3.如何配置

  • 最少有兩臺(及以上)服務器
  • 主服務器,端口號:6379;pid文件配置好了;數據目錄也配置好了。
  • 從服務器,端口號:6380;pid文件不能和主服務在一塊兒;數據目錄不能和主服務器在一塊兒。
  • 也就是一句話把主服務器的配置文件拷貝一份到從服務器一份修改文件名及相應配置參數。(slave.conf與主服務器的redis.conf一個目錄裏面,端口號是6380,dir /sdata ,appendonly no,再啓動新服務器,檢驗是否啓動成功,鏈接主服務器的IP地址和端口號 slaveod 127.0.0.1 6379,鏈接主服務器密碼 masterauth aklman,中止從服務器再啓動,驗證)

總結:在Redis的主從配置中,從服務器是一個只讀的設備。不能寫操做。

第二部分 Redis支持的經常使用數據類型

2.1 字符串(String)

設置一個值:set key value

set name aklman

獲取一個值:get key

get name

同時設置多個值:mset key1 value key2 value

同時獲取多個值:mget key1 key2

刪除值:del key

自增1(值必須是數字):incr key

自增指定的值:incrby key

incrby能夠操做的最大範圍:有符號的2^64;而修改Memcache的最大範圍描述是無符號的2^64

超過Redis在整形最大範圍的時候,繼續自增會報錯;而Memcache在最大值時繼續增長會到0再繼續加。自減也同理,只是把增長數值設定負數便可。Memcache在最小值時繼續向下減依然是最小值。

Redis設置的數和增長的數值可使用負數,Memcache不能使用負數。增減與上同理。

2.2 散列表(Hash)

形式:key => array(field1=>value1,field2=>value2,field3=>value2);value1能夠重複,field不能重複。

設置值:hset key field value

hset user name aklman

獲取值:hget key field

hget user name

設定多個值:hmset key field1 value1 field2 value2

hmset student name aklman age 18 sex 1

獲取多個值(字段值的順序能夠換):hmget key field1 field2 field3

hash表中設定的字段值是惟一的,若是以前有,就會覆蓋!!

獲取hash標的field和value(獲取因此字段及相應值):hgetall key

獲取hash表裏面的field:hkeys key

獲取hash表裏面的value的個數:hlen key

刪除hash表裏面的field值:hdel key field1 field2

注意:hash表中的操做,必須使用hash的方法來操做,字符串的操做就用字符串的方式,不能混着用。

2.3 列表(List)

列表:雙向列表,隊列,堆棧;裏面的值是能夠重複的。

  • 雙向列表:一邊能夠進出,另外一邊也能夠進出
  • 隊列:只能一邊進入,另外一邊彈出,先進先出
  • 堆棧:只有一個口,口先進先出

1.雙向列表:

給一個列表從左(右)邊添加內容:lpush(rpush) Listname value1 value2 value3

查看list的內容:lrange Listname 起始位置(0或者其餘) 結束位置(-1表示最後面)

從左(右)邊彈出一個值:lpop(rpop) Listname

查看列表的長度:llen Listname

2.隊列:

給一個列表從左邊添加內容:lpushListname value1 value2 value3

從左邊彈出一個值:lpop Listname

給一個列表從右邊添加內容:rpush Listname value1 value2 value3

從右邊彈出一個值:rpop Listname

3.堆棧

給一個列表從左邊添加內容:lpushListname value1 value2 value3

從左邊彈出一個值:lpop Listname

給一個列表從右邊添加內容:rpush Listname value1 value2 value3

從右邊彈出一個值:rpop Listname

2.4 集合(Set)

添加數據:sadd set value1 value2 value3

添加完數據後再想添加數據,能夠再sadd setvalue4 value5 value3,發現直插入成功兩個,由於集合不容許values的值重複出現。

查看數據:smembers set

隨機彈出:spop set

爲何集合裏面的數據能隨機彈出?緣由是集合中的數據是無序的,也就是無序集合有這個特性。

隨機彈出多個值:spop set n (n不能超過集合元素數)

查看長度:scard set

交集:sinter setA setB

交集就是它們的共同部分,與數學中學的一個樣

並集:sunion setA setB

重複的內容只顯示一次。

差集:sdiff setA setB

redis裏面的差集,是隻顯示,第一個集合的內容

2.5 有序集合(SortedSet)

添加數據:zadd SortedSetKey number1 value1 number2 value2

查看長度:zcard SortedSetKey

查看有序集合裏面的值:zrange SortedSetKey 起始位置 結束位置(-1表示最後的位置)

顯示有序集合排序的編號:zrange SortedSetKey 起始位置 結束位置(-1表示最後的位置) withscores

修改排序號:zincrby SortedSetKey n value1

  • 把value1的排序號改爲n(表示數字)

顯示倒序:zrevrange SortedSetKey 起始位置 結束位置(-1表示最後的位置)

顯示帶編號的倒序:zrevrange SortedSetKey 起始位置 結束位置(-1表示最後的位置) withscores

注意:

  • 當插入相同排的值時會覆蓋寫以前數據也就說會number同樣覆蓋value,value同樣覆蓋number。
  • 無序集合與有序集合:裏面的值都是惟一的,不可重複。當寫入的值,裏面已經有的時候,就直接覆蓋!!

2.6 鍵(Key)

1.查看Redis裏面有多少個key:keys *

  • 一一列出來,星號是通配符,分左匹配和右匹配,左匹配列出指定字符開頭的key,右匹配列出指定字符結尾的key。
  • 通配符很重要,用Redis的時候,確定是數據兩特別大,此時要去測試數據,有不少類型的測試數據,都是隻能使用一次,使用一次以後就要刪除的,假如這些數據都要存儲在Redis裏面的,所以咱們就要使用這種操做來刪除不須要的數據。反覆此時,測試玩刪除數據以後再測試。

2.幾條經常使用命令:

//在命令行直接運行命令
redis-cli keys '*'
//在命令行刪除內容,指定刪除的key
redis-cli del 'test'
//結合兩個命令實現搜索而且刪除key,這樣寫會報錯,由於keys在執行完成以後,一次性把文檔裏面拿給了del,此時,del就認爲你文檔裏面的值,是一個值,要刪除就會報錯。
redis-cli keys '*' | redis-cli del
//解決方式以下,xargs的含義是:當左邊命令結果經過管道的時候,只要有xargs參數,它就是告訴左邊的命令,你執行一條結果,就給我一條結果。左邊在執行的時候,執行一個結果,就當即傳給咱們右邊去執行
redis-cli keys '*t' |xargs redis-cli del

思考問題:

1.當咱們左邊的查詢內容是10G的時候,它要傳給右邊,須要的內存多少?
  • 佔用內存20G,由於使用了xargs參數,就是執行完一個結構就傳給右邊,一個結構能夠佔10K,傳給右邊也是10K,加起來就是20K。

    2.在結合find的使用
  • 當數據左邊查詢(操做)的數據量大的時候,必定使用xargs命令
find /toot/ -name '*php' | xargs ls -l

3.判斷key是否存在:exists key

  • 在Redis服務器裏面使用

4.設置過時時間:expire key 20

  • 好比,expire sex 10,時間到了就過時,過時了get sex得不到值

5.查看過時時間:ttl key

6.查看key的類型:type key

7.選擇庫:select 2

  • 默認有16個庫,索引是從0開始的,到15結束,默認庫是0.
  • 每個庫的數據都是互相獨立的。

8.是在redis的客戶端去ping咱們redis的服務端:ping hello

  • 回hello,也就是發什麼給服務器,服務器若是在線都會回覆你什麼。若是沒有在線,那就回復不了。只發ping回pong

9.清空當前庫:flushdb

  • 這個命令通常都不會使用,萬一刪了別人的數據就很差。

10.清空索引的庫:flushall

11.Redis的key命名規範

  • 給key進行設置的時候,必定使用:來做爲分隔符。
  • 在項目中,應該給每個項目都設置單獨的前綴來區分不一樣的項目。如,k122009,hedu2009
  • Redis是有密碼驗證功能的,能夠在服務器端開啓密碼驗證,登陸的時候,就要輸入密碼,auth:密碼。而Memcache服務器是沒有密碼驗證功能的。密碼在redis.conf中設置,設置玩重啓redis(ps -ef | grep redis)。
  • kill pid號:默認是使用-15參數。就是咱們的通知咱們主進程,關閉系統。主進程會回收它的資源,而後進行關閉。-9 參數:就是咱們強制性把程序關閉。

第三部分 總結和擴展

3.1 Redis其餘令總結

1.EXISTS and DEL

  • EXISTS key 判斷一個key是否存在;存在返回 1;不然返回0; DEL key 刪除某個key,或是一系列key;
  • DEL key1 key2 key3 key4。成功返回1,失敗返回0(key值不存在)。

2.TYPE and KEYS

  • TYPE key:返回某個key元素的數據類型 ( none:不存在,string:字符,list,set,zset,hash),key不存在返回空。
  • KEYS key—pattern :返回匹配的key列表 (KEYS foo*:查找foo開頭的keys)

3.RANDOMKEY and CLEAR

  • RANDOMKEY : 隨機得到一個已經存在的key,若是當前數據庫爲空,則返回空字符串。
  • CLEAR :清除界面。

4.RENAME and RENAMENX

  • RENAME oldname newname:改key的名字,新鍵若是存在將被覆蓋 。
  • RENAMENX oldname newname:更改key的名字,若是newname存在,則更新失敗;

5.DBSIZE

  • DBSIZE :返回當前數據庫的key的總數

6.CONFIG GET and CONFIG SET

  • CONFIG GET:用來讀取運行Redis服務器的配置參數。
  • CONFIG SET:用於更改運行Redis服務器的配置參數。
  • AUTH : 認證密碼

7.CONFIG RESETSTAT

  • CONFIG RESETSTAT:重置數據統計報告,一般返回值爲'OK"

3.2 PHP操做Redis基本操做

PHP操做Redis:使用咱們的php客戶端(redis擴展)鏈接到redis服務器

<?php
    $redis=new redis();
    $redis->connect('127.0.0.1',6379);
    
    $redis->auth('aklman');
    $redis->set('DomainServer','Aklman.com');

就能夠在Redis從服務器中看到這條信息了。

3.3 INFO 查詢信息解讀

INFO [section] :查詢Redis相關信息。 INFO命令能夠查詢Redis幾乎全部的信息,其命令選項有以下:

  • server: Redis server的常規信息
  • clients: Client的鏈接選項
  • memory: 存儲佔用相關信息
  • persistence: RDB and AOF 相關信息
  • stats: 常規統計
  • replication: Master/slave請求信息
  • cpu: CPU 佔用信息統計
  • cluster: Redis 集羣信息
  • keyspace: 數據庫信息統計
  • all: 返回全部信息
  • default: 返回常規設置信息

標註

[1] 持久化是指存儲到磁盤,服務器重啓後還能夠存在。而存儲到內存中的數據,一重啓服務器就不存在。

參考資料

Redis實戰
Aklman的讀書筆記

相關文章
相關標籤/搜索