<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Redis 應用

      Redis 應用

      一、Redis 應用

      1.1.1 Redis 介紹

      1. Redis 介紹
      Redis 是一種基于鍵值對(key value)的 NoSQL(非關系型) 數據庫,與很多鍵值對數據庫不同,
      redis 中的值可以有    string,hash,list,set,zset,geo 等多種數據結構和算法組成. 因為 Redis
      會將所有的數據都放在內存中,所以他的讀寫性能非常驚人. 不僅如此,Redis  
      還可以將內存中的數據利用快照和日志的形式保存到硬盤上 Redis 還提供了鍵過期,發布訂閱,事務,流水線等附加功能. 
      
      1. Redis 特點
      1.速度快  Redis 所有的數據都存放在內存中  Redis 使用 C 語言實現  Redis 使用單線程架構 
      2.基于鍵值對的數據結構服務器  支持5種數據結構:字符串,哈希,列表,集合,有序集合 
      3.豐富的功能  提供了鍵過期功能,可以實現緩存  提供了發布訂閱功能,可以實現消息系統  提供了 pipeline 功能,客戶端可以將一批命令一次性傳到 Redis,減少了網絡開銷
      4.簡單穩定  源碼很少,3.0 版本以后 5 萬行左右.  使用單線程模型法,是的 Redis 服務端處理模型變得簡單.  不依賴操作系統的中的類庫 
      5.客戶端語言多   java,PHP,python,C,C++,Nodejs 等 
      6.持久化  RDB 和 AOF 
      7.主從復制 
      8.高可用和分布式  哨兵  集群 
      
      1. 應用場景
      1.緩存-鍵過期時間
      緩存 session 會話  緩存用戶信息,找不到再去 mysql 查,查到然后回寫到 redis 
      2.排行榜-列表&有序集合  熱度排名排行榜  發布時間排行榜 
      3.計數器應用-天然支持計數器  帖子瀏覽數  視頻播放次數  商品瀏覽數 
      4.社交網絡-集合  踩/贊,粉絲,共同好友/喜好,推送,打標簽
      5.消息隊列系統-發布訂閱  配合 elk 實現日志收集 
      

      1.1.2 Redis環境部署

      1. Redis環境部署
      #db01 db02 db03 都要操作
      [root@db01 ~]# cat >/etc/hosts<<EOF
      > 10.4.7.51 db01
      > 10.4.7.52 db02
      > 10.4.7.53 db03
      > EOF
      [root@db01 ~]# tail -3 /etc/hosts
      10.4.7.51 db01
      10.4.7.52 db02
      10.4.7.53 db03
      
      創建存放Redis配置的目錄
      [root@db03 ~]# mkdir -p /data/soft 
      [root@db03 ~]# mkdir -p /data/redis_cluster/redis_6379 
      [root@db03 ~]# mkdir -p /opt/redis_cluster/redis_6379/{conf,pid,logs} 
      
      下載Redis:
      http://download.redis.io/releases/
      [root@db03 /data/soft]# wget http://download.redis.io/releases/redis-3.2.9.tar.gz 
      --2020-07-08 15:18:51--  http://download.redis.io/releases/redis-3.2.9.tar.gz
      Resolving download.redis.io (download.redis.io)... 45.60.125.1
      Connecting to download.redis.io (download.redis.io)|45.60.125.1|:80... connected.
      HTTP request sent, awaiting response... 200 OK
      Length: 1547695 (1.5M) [application/octet-stream]
      Saving to: ‘redis-3.2.9.tar.gz’
      
      100%[===========================================================================================>] 1,547,695   7.23KB/s   in 6m 50s 
      
      2020-07-08 15:25:53 (3.69 KB/s) - ‘redis-3.2.9.tar.gz’ saved [1547695/1547695]
      
      [root@db03 /data/soft]# ll
      total 1512
      -rw-r--r-- 1 root root 1547695 Jun 27 23:51 redis-3.2.9.tar.gz
      
      解壓Redis
      [root@db03 /data/soft]# tar zxf redis-3.2.9.tar.gz -C /opt/redis_cluster/ 
      [root@db03 /data/soft]# ll /opt/redis_cluster/
      total 0
      drwxrwxr-x 6 root root 309 May 17  2017 redis-3.2.9
      drwxr-xr-x 5 root root  41 Jul  8 15:17 redis_6379
      
      make安裝Redis
      [root@db03 /data/soft]# cd /opt/redis_cluster/redis-3.2.9/
      [root@db03 /opt/redis_cluster/redis-3.2.9]#  make && make install #make install 可以在這里執行,也可以cd ./src 下面去執行 make install
      
      做軟連接
      [root@db03 /opt/redis_cluster/redis-3.2.9]# ln -s /opt/redis_cluster/redis-3.2.9/ /opt/redis_cluster/redis
      [root@db03 /opt/redis_cluster/redis-3.2.9]# ll -ld /opt/redis_cluster/redis
      lrwxrwxrwx 1 root root 31 Jul  8 15:59 /opt/redis_cluster/redis -> /opt/redis_cluster/redis-3.2.9/
      
      安裝完成后的可執行文件
      redis-benchmark  
      redis-check-aof  
      redis-check-rdb  
      redis-cli  			#客戶端連接工具
      redis-sentinel  	#哨兵服務端
      redis-server		#服務端
      
      1. Redis的配置文件
      [root@db03 /opt/redis_cluster/redis]# grep "^[a-Z]" /opt/redis_cluster/redis/redis.conf 
      bind 127.0.0.1
      protected-mode yes
      port 6379
      tcp-backlog 511
      timeout 0
      tcp-keepalive 300
      daemonize yes
      supervised no
      pidfile /var/run/redis_6379.pid
      loglevel notice
      logfile ""
      databases 16
      save 900 1
      save 300 10
      save 60 10000
      stop-writes-on-bgsave-error yes
      rdbcompression yes
      rdbchecksum yes
      dbfilename dump.rdb
      dir ./
      slave-serve-stale-data yes
      slave-read-only yes
      repl-diskless-sync no
      repl-diskless-sync-delay 5
      repl-disable-tcp-nodelay no
      slave-priority 100
      appendonly no
      appendfilename "appendonly.aof"
      appendfsync everysec
      no-appendfsync-on-rewrite no
      auto-aof-rewrite-percentage 100
      auto-aof-rewrite-min-size 64mb
      aof-load-truncated yes
      lua-time-limit 5000
      slowlog-log-slower-than 10000
      slowlog-max-len 128
      latency-monitor-threshold 0
      notify-keyspace-events ""
      hash-max-ziplist-entries 512
      hash-max-ziplist-value 64
      list-max-ziplist-size -2
      list-compress-depth 0
      set-max-intset-entries 512
      zset-max-ziplist-entries 128
      zset-max-ziplist-value 64
      hll-sparse-max-bytes 3000
      activerehashing yes
      client-output-buffer-limit normal 0 0 0
      client-output-buffer-limit slave 256mb 64mb 60
      client-output-buffer-limit pubsub 32mb 8mb 60
      hz 10
      aof-rewrite-incremental-fsync yes
      
      按自己需求配置文件
      [root@db03 /opt/redis_cluster/redis]# cp redis.conf{,.bak}
      [root@db03 /opt/redis_cluster/redis]# cat > /opt/redis_cluster/redis_6379/conf/redis_6379.conf <<EOF 
      ### 以守護進程模式啟動 
      daemonize yes 
      ### 綁定的主機地址 
      bind 10.4.7.51 127.0.0.1 
      ### 監聽端口 
      port 6379 
      ### pid 文件和 log 文件的保存地址 
      pidfile /opt/redis_cluster/redis_6379/pid/redis_6379.pid 
      logfile /opt/redis_cluster/redis_6379/logs/redis_6379.log 
      ### 設置數據庫的數量,默認數據庫為 0 
      databases 16 
      ### 指定本地持久化文件的文件名,默認是 dump.rdb 
      dbfilename redis_6379.rdb 
      ### 本地數據庫的目錄 
      dir /data/redis_cluster/redis_6379 
      EOF
      
      1. 啟動和關閉Redis服務
      啟動:
      [root@db03 ~]# redis-server /opt/redis_cluster/redis_6379/conf/redis_6379.conf 
      [root@db03 ~]# ss -luntp|grep 63
      tcp    LISTEN     0      511    127.0.0.1:6379                  *:*                   users:(("redis-server",pid=7998,fd=5))
      tcp    LISTEN     0      511    10.4.7.53:6379                  *:*                   users:(("redis-server",pid=7998,fd=4))
      
      關閉
      [root@db03 ~]# redis-cli -h db03 shutdown
      [root@db03 ~]# redis-cli -h 10.4.7.53  shutdown
      

      1.1.3 Redis 基本操作命令

      Redis 有 5 種數據結構,他們是鍵值對中的值,對于鍵來說有一些通用的命令.

      1. 字符串操作
        Redis 并不是簡單地 key-value 存儲,實際上他是一個數據結構服務器,支持不同類型的值
        Redis Strings 這是最簡單的 Redis 類型,如果你只用這種類型,Redis 就像一個持久化的 memcache 服務器 (注:memcache 的數據僅保存在內存中,服務器重啟后,數據將丟失.)
        通常用 SET command 和 GET command 來設置和獲取字符串值
      [root@db03 ~]# redis-cli -h 10.4.7.53 
      10.4.7.53:6379> keys *             #查看所有的key
      (empty list or set) 
      10.4.7.53:6379> set name git       #設置key
      OK
      10.4.7.53:6379> get name           #檢查key
      "git"
      
      也可以非交互式的操作
      [root@db03 ~]# redis-cli -h 10.4.7.53 set name hub
      OK
      [root@db03 ~]# redis-cli -h 10.4.7.53 get name 
      "hub"
      
      [root@db03 ~]# echo "你努力獲得的,都是自己的,不容易忘掉。 星辰和大海都需要門票,詩和遠方的路費都很貴。來人間一次,努力成為最好的自 己。人間值得,未來可期." >test.txt
      [root@db03 ~]# cat test.txt 
      你努力獲得的,都是自己的,不容易忘掉。 星辰和大海都需要門票,詩和遠方的路費都很貴。來人間一次,努力成為最好的自己。人間值得,未來可期.
      
      [root@db03 ~]# redis-cli -h 10.4.7.53 set txt "$(cat test.txt)"
      OK
      [root@db03 ~]# redis-cli -h 10.4.7.53 get txt
      "\xe4\xbd\xa0\xe5\x8a\xaa\xe5\x8a\x9b\xe8\x8e\xb7\xe5\xbe\x97\xe7\x9a\x84\xef\xbc\x8c\xe9\x83\xbd\xe6\x98\xaf\xe8\x87\xaa\xe5\xb7\xb1\xe7\x9a\x84\xef\xbc\x8c\xe4\xb8\x8d\xe5\xae\xb9\xe6\x98\x93\xe5\xbf\x98\xe6\x8e\x89\xe3\x80\x82 \xe6\x98\x9f\xe8\xbe\xb0\xe5\x92\x8c\xe5\xa4\xa7\xe6\xb5\xb7\xe9\x83\xbd\xe9\x9c\x80\xe8\xa6\x81\xe9\x97\xa8\xe7\xa5\xa8\xef\xbc\x8c\xe8\xaf\x97\xe5\x92\x8c\xe8\xbf\x9c\xe6\x96\xb9\xe7\x9a\x84\xe8\xb7\xaf\xe8\xb4\xb9\xe9\x83\xbd\xe5\xbe\x88\xe8\xb4\xb5\xe3\x80\x82\xe6\x9d\xa5\xe4\xba\xba\xe9\x97\xb4\xe4\xb8\x80\xe6\xac\xa1\xef\xbc\x8c\xe5\x8a\xaa\xe5\x8a\x9b\xe6\x88\x90\xe4\xb8\xba\xe6\x9c\x80\xe5\xa5\xbd\xe7\x9a\x84\xe8\x87\xaa\xe5\xb7\xb1\xe3\x80\x82\xe4\xba\xba\xe9\x97\xb4\xe5\x80\xbc\xe5\xbe\x97\xef\xbc\x8c\xe6\x9c\xaa\xe6\x9d\xa5\xe5\x8f\xaf\xe6\x9c\x9f."
      [root@db03 ~]# redis-cli  get txt >rad.log
      [root@db03 ~]# cat rad.log 
      你努力獲得的,都是自己的,不容易忘掉。 星辰和大海都需要門票,詩和遠方的路費都很貴。來人間一次,努力成為最好的自己。人間值得,未來可期.
      
      查找所有key (生產中不能使用)
      [root@db03 ~]# redis-cli  -h 10.4.7.53 keys "*"
      1) "txt"
      2) "read"
      3) "name"
      查找某一個key
      [root@db03 ~]# redis-cli  -h 10.4.7.53 keys name
      1) "name"
      
      統計可以的數量
      [root@db03 ~]# redis-cli  -h 10.4.7.53 dbsize
      (integer) 3
      
      查看某一個的類型
      [root@db03 ~]# redis-cli  -h 10.4.7.53 type name
      string
      
      INCR(加1)命令將字符串值解析成整型.將其加 1,最后結果保存為新的字符串,類似命令: INCRBY(加 n), DECR(減1),DECRBY(減 n)
      
      [root@db03 ~]# redis-cli  -h 10.4.7.53 
      10.4.7.53:6379> set num 100
      OK
      10.4.7.53:6379> get num
      "100"
      10.4.7.53:6379> type num
      string
      10.4.7.53:6379> incr num
      (integer) 101
      10.4.7.53:6379> incrby num 10
      (integer) 111
      10.4.7.53:6379> get num
      "111"
      
      10.4.7.53:6379> get num
      "111"
      10.4.7.53:6379> decr num
      (integer) 110
      10.4.7.53:6379> decrby num 10
      (integer) 100
      
      MSET 和 MGET 可以一次存儲或獲取多個 key 對應的值. 
      
      10.4.7.53:6379> mset k2 v2 k3 v3 k4 v4
      OK
      10.4.7.53:6379> mget k1 name  k2  k3  k4 
      1) (nil)
      2) "hub"
      3) "v2"
      4) "v3"
      5) "v4"
      
      EXISTS 命令返回 1(存在) 或 0(不存在) 標識給定 key 的值是否存在. 
      使用 DEL 命令可以刪除 key 對應的值, 
      DEL 命令返回 1(存在且被刪除) 或 0(不存在沒被刪除) 標識是被刪除(值存在)或者沒被刪除(key 對應的值不存在). 
      
      查看某一個key存不存在
      
      10.4.7.53:6379> exists k9
      (integer) 0
      10.4.7.53:6379> exists k2
      (integer) 1
      
      刪除key
      10.4.7.53:6379> del k9
      (integer) 0
      10.4.7.53:6379> del k2
      (integer) 1
      
      可以對 key 設置一個超時時間,當這個時間到達后被刪除
      
      查看某個key的過期時間 ttl
      10.4.7.53:6379> ttl name
      (integer) -1    #- 表示永不過期
      
      給某一個key添加過期時間 expire
      10.4.7.53:6379> expire k3 10
      (integer) 1             
      10.4.7.53:6379> ttl k3
      (integer) 4
      10.4.7.53:6379> ttl k3
      (integer) 3
      10.4.7.53:6379> ttl k3
      (integer) 2
      10.4.7.53:6379> ttl k3
      (integer) 2
      10.4.7.53:6379> ttl k3
      (integer) -2    #表示已經過期并已刪除key
      
      10.4.7.53:6379> get k3
      (nil)                    #已經不存在key值了,說明k3不存在
      
      PERSIST 命令去除超時時間
      
      10.4.7.53:6379> EXPIRE txt 100
      (integer) 1
      10.4.7.53:6379> ttl txt
      (integer) 94
      10.4.7.53:6379> ttl txt
      (integer) 92
      10.4.7.53:6379> ttl txt
      (integer) 91
      10.4.7.53:6379> ttl txt
      (integer) 89
      
      10.4.7.53:6379> PERSIST txt  #取消txt的超時時間
      (integer) 1
      10.4.7.53:6379> ttl txt 
      (integer) -1                 #-1 txt 永不過期
      
      1. 列表操作
        LPUSH 命令可向 list 的左邊(頭部)添加一個新元素
        LPOP 命令可向 list 的右邊(尾部)刪除一個新元素.
        RPUSH 命令可向 list 的右邊(尾部)添加一個新元素.
        RPOP 命令可向 list 的右邊(尾部)刪除一個新元素.
        最后 LRANGE 可以從 list 中取出一定范圍的元素
      10.4.7.53:6379> RPUSH list1  A
      (integer) 1
      10.4.7.53:6379> RPUSH list1  B
      (integer) 2
      10.4.7.53:6379> RPUSH list1  C
      (integer) 3
      
      0.4.7.53:6379> LPUSH list1 top1
      (integer) 4
      10.4.7.53:6379> LPUSH list1 top2
      (integer) 5
      
      10.4.7.53:6379> LRANGE list1 0 -1
      1) "top2"
      2) "top1"
      3) "A"
      4) "B"
      5) "C"
      
      10.4.7.53:6379> LRANGE list1 0 5
      1) "top2"
      2) "top1"
      3) "A"
      4) "B"
      5) "C"
      
      10.4.7.53:6379> RPOP list1
      "C"
      10.4.7.53:6379> LRANGE list1 0 -1
      1) "top2"
      2) "top1"
      3) "A"
      4) "B"
      
      10.4.7.53:6379> LPOP list1
      "top2"
      10.4.7.53:6379> LRANGE list1 0 -1
      1) "top1"
      2) "A"
      3) "B"
      
      1. 哈希操作
        Hash 看起來就像一個’hash’的樣子.由鍵值對組成
        HMSET 指令設置 hash 中的多個域
        HGET 取回單個域.
        HMGET 取回一系列的值
      10.4.7.53:6379> HMSET user:100 username zhansan age 27 job it
      OK
      
      10.4.7.53:6379> HMGET user:100 username 
      1) "zhansan"
      10.4.7.53:6379> HMGET user:100 username age
      1) "zhansan"
      2) "27"
      10.4.7.53:6379> HMGET user:100 username age job
      1) "zhansan"
      2) "27"
      3) "it"
      
      10.4.7.53:6379> HGETALL user:100
      1) "username"
      2) "zhansan"
      3) "age"
      4) "27"
      5) "job"
      6) "it"
      
      10.4.7.53:6379> HMSET user:100 email 446424543@qq.com
      OK
      10.4.7.53:6379> HGETALL user:100
      1) "username"
      2) "zhansan"
      3) "age"
      4) "27"
      5) "job"
      6) "it"
      7) "email"
      8) "446424543@qq.com"
      
      1. 集合操作
        集合是字符串的無序排列,
        SADD 指令把新的元素添加到 set 中
      10.4.7.53:6379> SADD set1 1 2 3 5 7
      (integer) 5
      10.4.7.53:6379> SADD set1 11
      (integer) 1
      10.4.7.53:6379> SMEMBERS set1
      1) "1"
      2) "2"
      3) "3"
      4) "5"
      5) "7"
      6) "11"
      
      10.4.7.53:6379> SADD set2 3 6 8 5 7
      (integer) 5
      10.4.7.53:6379> SMEMBERS set2
      1) "3"
      2) "5"
      3) "6"
      4) "7"
      5) "8"
      
      Sdiff 計算集合的差異成員 
      10.4.7.53:6379> SDIFF set1 set2  
      1) "1"
      2) "2"
      3) "11"
      
      10.4.7.53:6379> SADD set3 1 5 12 9
      (integer) 4
      10.4.7.53:6379> SMEMBERS set3
      1) "1"
      2) "5"
      3) "9"
      4) "12"
      
      10.4.7.53:6379> SDIFF set1 set2 set3
      1) "2"
      2) "11"
      
      Sinter 計算集合的交集 
      10.4.7.53:6379> SINTER set1 set2 set3
      1) "5"
      
      10.4.7.53:6379> SINTER set1 set2 
      1) "3"
      2) "5"
      3) "7"
      
      10.4.7.53:6379> SINTER set2 set3 
      1) "5"
      
      10.4.7.53:6379> SINTER set1 set3 
      1) "1"
      2) "5"
      
      Srem 用來刪除指定的值 
      10.4.7.53:6379> SREM set1 1
      (integer) 1
      10.4.7.53:6379> SMEMBERS set1
      1) "2"
      2) "3"
      3) "5"
      4) "7"
      5) "11"
      10.4.7.53:6379> SREM set1 11
      (integer) 1
      10.4.7.53:6379> SMEMBERS set1
      1) "2"
      2) "3"
      3) "5"
      4) "7"
      
      Sunion 計算集合并集 
      10.4.7.53:6379> SUNION set1 set2 set3
      1) "1"
      2) "2"
      3) "3"
      4) "5"
      5) "6"
      6) "7"
      7) "8"
      8) "9"
      9) "12"
      

      1.1.4 Redis 持久化配置

      1. Redis 持久化介紹

      可以在指定的時間間隔內生成數據集的 時間點快照(point-in-time snapshot)。
      優點:速度快,適合于用做備份,主從復制也是基于 RDB 持久化功能實現的。
      缺點:會有數據丟失

      1. 配置Redis持久化
      rdb持久化參數配置
      dbfilename redis_6379.rdb    #持久化文件名
      dir /data/redis_cluster/redis_6379  #本地數據庫的目錄 
      save 900 1                #900 秒(15 分鐘)內有 1 個更改 
      save 300 10               #300 秒(5 分鐘)內有 10 個更改 
      save 60 10000             #60 秒內有 10000 個更改   
      
      [root@db03 ~]# redis-server /opt/redis_cluster/redis_6379/conf/redis_6379.conf 
      [root@db03 ~]# ss -luntp|grep 63
      tcp    LISTEN     0      511    127.0.0.1:6379                  *:*                   users:(("redis-server",pid=1804,fd=5))
      tcp    LISTEN     0      511    10.4.7.53:6379                  *:*                   users:(("redis-server",pid=1804,fd=4))
      
      10.4.7.53:6379> BGSAVE
      Background saving started
      
      測試:
      [root@db03 ~]# for i in {1..10000};do redis-cli -h 10.4.7.53 set k_${i} v_${i}; echo "k_${i} is ok";done
      OK
      k_1 is ok
      OK
      k_2 is ok
      OK
      k_3 is ok
      OK
      ....
      。
      在配置文件里定義數據目錄下就會出現數據文件
      [root@db03 ~]# ll /data/redis_cluster/redis_6379/
      total 148
      -rw-r--r-- 1 root root 147877 Jul  9 13:54 redis_6379.rdb
      
      
      查看總共插入的數據
      [root@db03 ~]# redis-cli -h 10.4.7.53 
      10.4.7.53:6379> DBSIZE
      (integer) 10001
      
      查看信息
      10.4.7.53:6379> info
      # Server
      redis_version:3.2.9
      redis_git_sha1:00000000
      redis_git_dirty:0
      redis_build_id:7310ac1fcaf4a5a2
      redis_mode:standalone
      os:Linux 3.10.0-1062.18.1.el7.x86_64 x86_64
      arch_bits:64
      multiplexing_api:epoll
      gcc_version:4.8.5
      process_id:1804
      run_id:14be9cdc06d6867fd5ede7b533b0ab86bf5e9438
      tcp_port:6379
      uptime_in_seconds:785
      uptime_in_days:0
      hz:10
      lru_clock:436233
      executable:/root/redis-server
      config_file:/opt/redis_cluster/redis_6379/conf/redis_6379.conf
      
      # Clients
      connected_clients:1
      client_longest_output_list:0
      client_biggest_input_buf:0
      blocked_clients:0
      
      # Memory
      used_memory:1591944
      used_memory_human:1.52M
      used_memory_rss:7823360
      used_memory_rss_human:7.46M
      used_memory_peak:1591944
      used_memory_peak_human:1.52M
      total_system_memory:2076594176
      total_system_memory_human:1.93G
      used_memory_lua:37888
      used_memory_lua_human:37.00K
      maxmemory:0
      maxmemory_human:0B
      maxmemory_policy:noeviction
      mem_fragmentation_ratio:4.91
      mem_allocator:jemalloc-4.0.3
      
      # Persistence
      loading:0
      rdb_changes_since_last_save:0
      rdb_bgsave_in_progress:0
      rdb_last_save_time:1594271376
      rdb_last_bgsave_status:ok
      rdb_last_bgsave_time_sec:0
      rdb_current_bgsave_time_sec:-1
      aof_enabled:0
      aof_rewrite_in_progress:0
      aof_rewrite_scheduled:0
      aof_last_rewrite_time_sec:-1
      aof_current_rewrite_time_sec:-1
      aof_last_bgrewrite_status:ok
      aof_last_write_status:ok
      
      # Stats
      total_connections_received:11616
      total_commands_processed:11087
      instantaneous_ops_per_sec:0
      total_net_input_bytes:420076
      total_net_output_bytes:6157330
      instantaneous_input_kbps:0.00
      instantaneous_output_kbps:0.00
      rejected_connections:0
      sync_full:0
      sync_partial_ok:0
      sync_partial_err:0
      expired_keys:0
      evicted_keys:0
      keyspace_hits:0
      keyspace_misses:0
      pubsub_channels:0
      pubsub_patterns:0
      latest_fork_usec:306
      migrate_cached_sockets:0
      
      # Replication
      role:master
      connected_slaves:0
      master_repl_offset:0
      repl_backlog_active:0
      repl_backlog_size:1048576
      repl_backlog_first_byte_offset:0
      repl_backlog_histlen:0
      
      # CPU
      used_cpu_sys:1.88
      used_cpu_user:1.30
      used_cpu_sys_children:0.06
      used_cpu_user_children:0.00
      
      # Cluster
      cluster_enabled:0
      
      # Keyspace
      db0:keys=10001,expires=0,avg_ttl=0
      
      
      AOF 持久化配置 
      記錄服務器執行的所有寫操作命令,并在服務器啟動時,通過重新執行這些命令來還原數據集。  
      AOF 文件中的命令全部以 Redis 協議的格式來保存,新命令會被追加到文件的末尾。 
      優點:可以最大程度保證數據不丟 
      缺點:日志記錄量級比較大 
       
      appendfilename "appendonly.aof"  #文件名
      appendonly yes      #是否打開 aof 日志功能 
      appendfsync always   #每 1 個命令,都立即同步到 aof 
      appendfsync everysec #每秒寫 1 次 
      appendfsync no       #寫入工作交給操作系統,由操作系統判斷緩沖區大小,統一寫入到 aof.
      
      重啟redis:
      [root@db03 ~]# !redis-server
      redis-server /opt/redis_cluster/redis_6379/conf/redis_6379.conf 
      
      [root@db03 ~]# !ll
      ll /data/redis_cluster/redis_6379/
      total 1272
      -rw-r--r-- 1 root root 757811 Jul  9 14:37 appendonly.aof
      -rw-r--r-- 1 root root 317880 Jul  9 14:30 redis_6379.rdb
      
      [root@db03 ~]# redis-cli -h 10.4.7.53
      10.4.7.53:6379> keys *
          1) "k_3163"
          2) "k_4212"
          3) "k_19250"
          4) "k_8028"
          5) "k_18115"
      ....
      。
      #兩種持久方式可以同時開啟(并存)
      總結:
      持久化
      rdb 
      優點:恢復速度快,空間小
      缺點:可能會丟失
      
      aof 
      優點:數據安全,不容易丟失
      缺點:恢復速度慢,空間大
      
      Redis有個功能可以在線(熱更新)某些配置參數(重啟失效)
      使用CONFIG GET * 可以查看配置參數(包括手動和默認的)
      10.4.7.53:6379> CONFIG GET *
        1) "dbfilename"
        2) "redis_6379.rdb"
        3) "requirepass"
        4) ""
        5) "masterauth"
        6) ""
        7) "unixsocket"
        8) ""
        9) "logfile"
       10) "/opt/redis_cluster/redis_6379/logs/redis_6379.log"
       11) "pidfile"
       12) "/opt/redis_cluster/redis_6379/pid/redis_6379.pid"
       13) "slave-announce-ip"
       14) ""
       15) "maxmemory"
       16) "0"
       17) "maxmemory-samples"
       18) "5"
       19) "timeout"
       20) "0"
       21) "auto-aof-rewrite-percentage"
       22) "100"
       23) "auto-aof-rewrite-min-size"
       24) "67108864"
       25) "hash-max-ziplist-entries"
       26) "512"
       27) "hash-max-ziplist-value"
       28) "64"
       29) "list-max-ziplist-size"
       30) "-2"
       31) "list-compress-depth"
       32) "0"
       33) "set-max-intset-entries"
       34) "512"
       35) "zset-max-ziplist-entries"
       36) "128"
       37) "zset-max-ziplist-value"
       38) "64"
       39) "hll-sparse-max-bytes"
       40) "3000"
       41) "lua-time-limit"
       42) "5000"
       43) "slowlog-log-slower-than"
       44) "10000"
       45) "latency-monitor-threshold"
       46) "0"
       47) "slowlog-max-len"
       48) "128"
       49) "port"
       50) "6379"
       51) "tcp-backlog"
       52) "511"
       53) "databases"
       54) "16"
       55) "repl-ping-slave-period"
       56) "10"
       57) "repl-timeout"
       58) "60"
       59) "repl-backlog-size"
       60) "1048576"
       61) "repl-backlog-ttl"
       62) "3600"
       63) "maxclients"
       64) "10000"
       65) "watchdog-period"
       66) "0"
       67) "slave-priority"
       68) "100"
       69) "slave-announce-port"
       70) "0"
       71) "min-slaves-to-write"
       72) "0"
       73) "min-slaves-max-lag"
       74) "10"
       75) "hz"
       76) "10"
       77) "cluster-node-timeout"
       78) "15000"
       79) "cluster-migration-barrier"
       80) "1"
       81) "cluster-slave-validity-factor"
       82) "10"
       83) "repl-diskless-sync-delay"
       84) "5"
       85) "tcp-keepalive"
       86) "300"
       87) "cluster-require-full-coverage"
       88) "yes"
       89) "no-appendfsync-on-rewrite"
       90) "no"
       91) "slave-serve-stale-data"
       92) "yes"
       93) "slave-read-only"
       94) "yes"
       95) "stop-writes-on-bgsave-error"
       96) "yes"
       97) "daemonize"
       98) "yes"
       99) "rdbcompression"
      100) "yes"
      101) "rdbchecksum"
      102) "yes"
      103) "activerehashing"
      104) "yes"
      105) "protected-mode"
      106) "yes"
      107) "repl-disable-tcp-nodelay"
      108) "no"
      109) "repl-diskless-sync"
      110) "no"
      111) "aof-rewrite-incremental-fsync"
      112) "yes"
      113) "aof-load-truncated"
      114) "yes"
      115) "maxmemory-policy"
      116) "noeviction"
      117) "loglevel"
      118) "notice"
      119) "supervised"
      120) "no"
      121) "appendfsync"
      122) "no"
      123) "syslog-facility"
      124) "local0"
      125) "appendonly"
      126) "yes"
      127) "dir"
      128) "/data/redis_cluster/redis_6379"
      129) "save"
      130) ""
      131) "client-output-buffer-limit"
      132) "normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60"
      133) "unixsocketperm"
      134) "0"
      135) "slaveof"
      136) ""
      137) "notify-keyspace-events"
      138) ""
      139) "bind"
      140) "10.4.7.53 127.0.0.1"
      
      10.4.7.53:6379> CONFIG GET save
      1) "save"
      2) ""
      10.4.7.53:6379> CONFIG SET save "60 100 300 10 600 1"
      OK
      10.4.7.53:6379> CONFIG GET save
      1) "save"
      2) "60 100 300 10 600 1"
      

      1.1.5 Redis安全認證

      1. Redis安全認證
        redis 默認開啟了保護模式,只允許本地回環地址登錄并訪問數據庫。
      禁止 protected-mode 
      protected-mode yes/no (保護模式,是否只允許本地訪問) 
      
      Bind :指定 IP 進行監聽 
      [root@db03 ~]# vim /opt/redis_cluster/redis_6379/conf/redis_6379.conf 
      bind 10.4.7.53  127.0.0.1 
      
      增加 requirepass  {password}  認證
      [root@db03 ~]# vim /opt/redis_cluster/redis_6379/conf/redis_6379.conf 
      requirepass 123456
      
      第一種驗證方法:
      [root@db03 ~]# redis-server /opt/redis_cluster/redis_6379/conf/redis_6379.conf 
      [root@db03 ~]# redis-cli -h 10.4.7.53
      10.4.7.53:6379> keys *
      (error) NOAUTH Authentication required. #需要進行身份驗證
      10.4.7.53:6379> AUTH 123456
      OK
      10.4.7.53:6379> set name zhangsan
      OK
      10.4.7.53:6379> get name
      "zhangsan"
      
      第二種驗證方法:
      [root@db03 ~]# redis-cli -h 10.4.7.53 -a 123456
      10.4.7.53:6379> hmset user:100 username zhangsan age 27 job it
      OK
      10.4.7.53:6379> hmget user:100 username
      1) "zhangsan"
      
      posted @ 2020-07-09 18:59  海上月  閱讀(173)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 日韩AV无码精品一二三区| 国产成人精品av| 色爱综合激情五月激情| 国产精品国产三级国产试看| 精品国精品自拍自在线| 一区二区亚洲人妻精品| 国内视频偷拍久久伊人网| 日本一本无道码日韩精品| 无码伊人66久久大杳蕉网站谷歌| 国产福利深夜在线播放| 五月婷婷久久中文字幕| 老子午夜精品无码| 丰满少妇被猛烈进出69影院| 国产卡一卡二卡三免费入口| 色偷偷www.8888在线观看| 国产在线视频一区二区三区| 成人伊人青草久久综合网| 强开少妇嫩苞又嫩又紧九色| 金乡县| 激情综合网激情五月激情| 亚洲一区二区视频在线观看| 成人午夜大片免费看爽爽爽| 亚洲精品综合久久国产二区| 精品久久久噜噜噜久久久| 国产精品一区二区三区日韩| 欧美成人一区二区三区不卡| 无码人妻精品丰满熟妇区 | 亚洲国产大片永久免费看| 精品无人区一码二码三码| 久久成人影院精品777| 老妇女性较大毛片| 好爽毛片一区二区三区四| 国产精品欧美福利久久| 亚洲第一香蕉视频啪啪爽| 亚洲理论在线A中文字幕| 久久天天躁狠狠躁夜夜网站| 高清无码爆乳潮喷在线观看| 国产一区在线播放av| 欧美日韩中文国产一区| 国产精品国产精品一区精品| 亚洲精品免费一二三区|