1. 程式人生 > 其它 >4.使用docker安裝redis

4.使用docker安裝redis

1.拉去redis
[root@wmd01 bin]# docker pull redis

2.建立資料夾:
    mkdir -p /usr/local/docker/redis/config
    將自己的redis.conf檔案放入(此處必須放入自己的redis.conf檔案,並且必須是提前放入)
3.啟動redis
 docker run -p 6379:6379 --name redis -v /usr/local/docker/redis/config/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
命令解釋:
-p 6379:6379 埠對映:前表示主機部分,:後表示容器部分。
--name myredis 指定該容器名稱,檢視和進行操作都比較方便。
-v 掛載目錄,規則與埠對映相同。
-d redis 表示後臺啟動redis
redis-server /etc/redis/redis.conf 以配置檔案啟動redis,載入容器內的conf檔案,最終找到的是掛載的目錄/usr/local/docker/redis/config/redis.conf
appendonly yes 開啟redis 持久化



5.docker重啟redis服務
[root@wmd01 jdk]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
cd8a28bf1a1c        redis               "docker-entrypoint.s…"   16 minutes ago      Up 16 minutes       0.0.0.0:6379->6379/tcp   redis
[root@wmd01 jdk]# docker restart cd8a28bf1a1c

6.如何驗證dokcer啟動的redis可用呢
    1.進入互動;
        [root@wmd01 jdk]# docker ps
        CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
        cd8a28bf1a1c        redis               "docker-entrypoint.s…"   20 minutes ago      Up 3 minutes        0.0.0.0:6379->6379/tcp   redis
        [root@wmd01 jdk]# docker exec cd8a28bf1a1c -it /bin/bash

    2.執行命令:
        root@cd8a28bf1a1c:/bin# redis-cli -p 6379
        127.0.0.1:6379> ping
        PONG
        127.0.0.1:6379> set name wmd
        OK
        127.0.0.1:6379> get name
        "wmd"
        127.0.0.1:6379> keys *
        1) "name"

7.如何檢視啟動的redis用的是哪個redis.conf檔案呢
    [root@wmd01 config]# docker ps(檢視執行的id號)
        CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
        e3d8c6065884        redis               "docker-entrypoint.s…"   2 minutes ago       Up 2 minutes        0.0.0.0:6379->6379/tcp   redis
    [root@wmd01 config]# docker exec -it e3d8c6065884 /bin/bash(進入互動)
    root@e3d8c6065884:/data# redis-cli info |grep config(執行該命令)
        configured_hz:10
        config_file:/etc/redis/redis.conf(返回的是使用的配置檔案在容器中的路徑)

8.如何用命令獲取配置檔案中的值(檢查配置檔案是否生效)(config get key)
    1.更改為配置需要重啟下reids:docker restart 對應的id號
        127.0.0.1:6379> config get save
            1) "save"
            2) "60 5"
        127.0.0.1:6379> config get bind
            1) "bind"
            2) "127.0.0.1"
        127.0.0.1:6379> config get dir
            1) "dir"
            2) "/data/rdb"
    2.當然也可以使用命令設定redis的配項(在redis執行期間有效)
        127.0.0.1:6379> config set dir "/data/rdb"
            OK
        127.0.0.1:6379> config get dir
            1) "dir"
            2) "/data/rdb"

redis的效能測試

1.還是以docker啟動的redis為例
命令如下:進入互動後:建立100個併發客戶端,總共傳送100000個請求
    root@cd8a28bf1a1c:/# redis-benchmark -h localhost -p 6379 -c 100 -n 100000
    
返回如下
序號 選項 描述 預設值
1 -h 指定伺服器主機名 127.0.0.1
2 -p 指定伺服器埠 6379
3 -s 指定伺服器 socket  
4 -c 指定併發連線數 50
5 -n 指定請求數 10000
6 -d 以位元組的形式指定 SET/GET 值的資料大小 2
7 -k 1=keep alive 0=reconnect 1
8 -r SET/GET/INCR 使用隨機 key, SADD 使用隨機值  
9 -P 通過管道傳輸 <numreq> 請求 1
10 -q 強制退出 redis。僅顯示 query/sec 值  
11 --csv 以 CSV 格式輸出  
12 -l 生成迴圈,永久執行測試  
13 -t 僅執行以逗號分隔的測試命令列表。  
14 -I Idle 模式。僅開啟 N 個 idle 連線並等待。