Nosql 之 Redis數據庫

一、redis基礎入門
二、redis應用進階redis

1、概念
redis是一個開源的鍵-值,便是緩存又是存儲,支持持久化,藉助sentinel實現必定意義的高可用,數據結構服務器:string,list,hash,set ,sorted set,bitmap,hyperloglog
nosql 四種流派:
key-value 鍵值型 :Memcached redis
documemtation文檔型 :Mongodb
columu family列式型 : Hbase
graph圖像型:Neo4jsql

2、安裝redis
下載地址 www.redis.io redis-3.0.2-1.el6.remi.x86_64.rpm
rpm -ivh redis-3.0.2-1.el6.remi.x86_64.rpm
rpm -ql 查看安裝文件
cp /etc/redis.conf{,.bak}
vim /etc/redis.conf 配置文件介紹
daemonize no 守護進程
port 6379
tcp-backlog 511 #tcp 請求的等待隊列
bind 127.0.0.1 默認監聽的地址,須要指定本身的ip地址
如 bind 127.0.0.1 192.168.100.6
timeout 0 客戶端連接超時時間,0表示禁用此功能,不會超時
loglevel notice 日誌級別
logfile /var/log/redis/redis.log 日誌文件
databases 16 redis支持(0-15個庫),select 0 選擇0庫,分佈式不支持多庫形式
-----------------快照-------------------------------------------
save seconds changes
save 900 1 900秒內有1次記錄發送變化,記錄快照
save 300 10
save 60 10000
save 「 」 表示禁止持久化功能,只作緩存,需註釋以上三行
----------------主從--------------------------------
slaveof masterip masterport
salveof 主ip 主端口,若是啓動這項就是從服務器,不然主
只有這項啓用了,下面有關主從的參數才生效。
-----------------SECYRUTTY安全-----------------------------------------
requirepass foobared
-------------------LIMITS 限制--------------------------------------------------
maxclients 10000 最大併發客戶端數量
maxmemory <bytes> 最大使用內存空間容量
-------------------APPEND ONLY MODE-------------------------------
appendonly no 默認是禁用的,至關於二進制日誌

3、經常使用命令
#redis-cli -h 查看幫助
#redis-cli -h 192.168.100.6 遠程連接
redis>help @STRING 查看有哪些命令,來自哪一個版本
redis>help set
redis>set key value 如set name lisan
redis>get key
"lisan"數據庫

4、應用進階
redis如何實現認證功能,在配置文件中vi etc/redis.conf
requirepass 123456 #123456爲密碼,重啓生效
#redis-cli -h 192.168.100.6vim

select 0 , 提示認證信息
AUTH 123456
OK ,認證經過緩存

清空數據庫:
    FLUSHDB:清空當前數據庫   FLUSHALL:清空全部庫

redis持久化:RDB和AOF,用那種取決於咱們的目的
    RDB: snapshot,二進制格式,按事先定製的策略,週期性的將數據保存至磁盤,數據文件默認爲dump.rdb , save命令就是定製保存週期的。客戶端也能夠顯示使用save或bgsave命令啓動快照保存機制。
    save,同步,在主線程中保存快照,此時會阻塞全部客戶端請求,
 bgsave,異步,主進程複製出來一個子進程,由子進程來保存數據,不影響業務使用
    AOF: Append Only File ,記錄每一次寫操做至指定的文件尾部實現持久化,當redis重啓時,可經過從新執行文件中的命令在內存中重建數據庫,這樣這個文件會愈來愈大,BGREWRITEAOF:AOF文件重寫,不會讀取正在使用的AOF文件,而經過將內存中的數據以命令的方式保存到臨時文件中,完成以後替換原來的AOF文件。

    AOF重寫過程:
    一、redis主進程經過fork建立子進程
    二、子進程根據redis內存中的數據建立數據庫重建命令序列於臨時文件中
    三、父進程繼承client的請求,並會吧這些請求的寫操做繼續追加至原來的AOF文件,額外地,這些新的寫請求還會被放置於一個緩衝隊列中
    四、子進程從新完成,會通知父進程;父進程把緩衝中的命令寫到臨時文件中
    五、父進程用用臨時文件替換老的aof

    參數:
    appendonly no
    appendfilename  appendonly.aof

    appendfsync  always        每次收到寫命令就寫入磁盤的aof文件,影響性能
    appendfsync  everysec    每秒執行一次寫入磁盤aof,推薦的操做
  appendfsync  no

    注意,持久自己不能取代備份,還應該制定備份策略,對redis數據庫按期進行備份。
    RDB與AOF同時啓用:
    一、BGSAVE和BGREWRITEAOF不會同時執行
    二、在Redis服務器啓動用於恢復數據時,會優先使用AOF

    複製特色:
         一、一個master能夠有多個slave
         二、支持鏈式複製
         三、master以非阻塞方式同步數據至salve
    複製過程:
        一、啓動salve後,從庫發送同步請求同步主庫的數據,主庫啓動後臺子進程將數據快照保存在本地數據文件中,並把數據文件發送給salve
        二、salve收到數據文件後保存到本地,並加載到內存中,完成數據同步
相關文章
相關標籤/搜索