Redis的安裝和配置 for CentOS

Redis 安裝和配置


Redis 安裝


  • Redis 安裝
    • 官網:http://redis.io/
    • 官網下載:http://redis.io/download
    • 官網 Github 地址:https://github.com/redis
    • 此時(20160212) Redis 最新穩(wěn)定版本為:3.0.7
    • 官網幫助中心:http://redis.io/documentation
    • 我個人習慣 /opt 目錄下創(chuàng)建一個目錄 setups 用來存放各種軟件安裝包披蕉;在 /usr 目錄下創(chuàng)建一個 program 用來存放各種解壓后的軟件包逝嚎,下面的講解也都是基于此習慣
    • 我個人已經使用了第三方源:EPEL、RepoForge旬陡,如果你出現(xiàn) yum install XXXXX 安裝不成功的話鸭丛,很有可能就是你沒有相關源褥傍,請查看我對源設置的文章
    • Redis 下載:wget http://download.redis.io/releases/redis-3.0.7.tar.gz (大辛盐省:1.4 M)
      • 安裝依賴包:
yum install -y gcc-c++ tcl
    - 解壓:
tar zxvf redis-3.0.7.tar.gz
    - 移動到我個人安裝目錄:
mv redis-3.0.7/ /usr/program/
    - 進入解壓后目錄:
cd /usr/program/redis-3.0.7/
    - 編譯:
make
    - 編譯安裝:
make install
      - 安裝完之后會在:/usr/local/bin 目錄下生成好幾個 redis 相關的文件
    - 復制配置文件:
cp /usr/program/redis-3.0.7/redis.conf /etc/
    - 修改配置:
vim /etc/redis.conf
      - 把舊值:daemonize no
      - 改為新值:daemonize yes
    - 啟動:
/usr/local/bin/redis-server /etc/redis.conf
    - 關閉:
redis-cli -h 127.0.0.1 -p 6379 shutdown
    - 查看是否啟動:
ps -ef | grep redis
    - 進入客戶端:
redis-cli
    - 關閉客戶端:
redis-cli shutdown
    - 開機啟動配置:
echo "/usr/local/bin/redis-server /etc/redis.conf" >> /etc/rc.local
    - 開放防火墻端口:
      - 添加規(guī)則:
iptables -I INPUT -p tcp -m tcp --dport 6379 -j ACCEPT
      - 保存規(guī)則:
service iptables save
      - 重啟 iptables:
service iptables restart

Redis 配置


  • 編輯配置文件:
vim /etc/redis.conf
  • Redis 默認的配置文件內容:
# 是否以后臺daemon方式運行,默認是 no张峰,一般我們會改為 yes
daemonize no
pidfile /var/run/redis.pid
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 0
loglevel notice
logfile ""
# 開啟數(shù)據庫的數(shù)量泪蔫,Redis 是有數(shù)據庫概念的,默認是 16 個喘批,數(shù)字從 0 ~ 15
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-entries 512
list-max-ziplist-value 64
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
  • 如果用 IP 進入客戶端撩荣,但是報:Could not connect to Redis at 192.168.1.121:6379: Connection refused
    • 原因:Redis 默認只允許本機訪問,可是有時候我們也需要 Redis 被遠程訪問饶深。
    • 解決辦法:
      • 修改 Redis 配置文件:
vim /etc/redis.conf
    - 找到 bind 那行配置餐曹,默認是:```# bind 127.0.0.1```
    - 去掉 # 注釋并改為:```bind 0.0.0.0```

Redis 常用命令


  • 命令是不區(qū)分大小寫的,但是這里為了方便和后面的 key value 進行區(qū)分所以我全部寫大寫敌厘,你也可以用小寫台猴。
    • 但是需要注意的是:key 是完全區(qū)分大小寫的,比如 key=codeBlog 和 key=codeblog 是兩個鍵值
  • 官網命令列表:http://redis.io/commands
  • SET key value俱两,設值饱狂。eg:SET myblog www.youmeek.com
  • GET key,取值
  • INCR key宪彩,遞增數(shù)字
  • DECR key休讳,遞減數(shù)字
  • KEYS *,查看當前數(shù)據庫下所有的 key
  • APPEND key value毯焕,給尾部追加內容衍腥,如果要追加的 key 不存在,則相當于 SET key value
  • STRLEN key纳猫,返回鍵值的長度,如果鍵不存在則返回 0
  • MSET key1 value1 key2 value2竹捉,同時設置多值
  • MGET key1 value1 key2 value2芜辕,同時取多值
  • EXPIRE key 27,設置指定鍵的生存時間块差,27 的單位是秒
  • TTL key侵续,查看鍵的剩余生存時間
    • 返回 -2倔丈,表示不存在,過了生存時間后被刪除
    • 返回 -1状蜗,表示沒有生存時間需五,永久存儲
    • 返回正整數(shù),表示還剩下對應的生存時間
  • PERSIST key轧坎,清除生成時間宏邮,重新變成永久存儲(重新設置 key 的值也可以起到清除生存時間的效果)
  • FLUSHDB,清空當前數(shù)據庫所有鍵值
  • FLUSHALL缸血,清空所有數(shù)據庫的所有鍵值

把 redis 添加到系統(tǒng)服務中


  • 新建文件:
vim /etc/init.d/redis
  • 添加如下內容:
#!/bin/sh  
#  
# redis - this script starts and stops the redis-server daemon  
#  
# chkconfig:   - 85 15  
# description:  Redis is a persistent key-value database  
# processname: redis-server  
# config:      /usr/local/redis-2.4.X/bin/redis-server  
# config:      /usr/local/ /redis-2.4.X/etc/redis.conf  
# Source function library.  
. /etc/rc.d/init.d/functions  
# Source networking configuration.  
. /etc/sysconfig/network  
# Check that networking is up.  
[ "$NETWORKING" = "no" ] && exit 0  
redis="/usr/local/bin/redis-server" 
prog=$(basename $redis)  
REDIS_CONF_FILE="/etc/redis.conf" 
[ -f /etc/sysconfig/redis ] && . /etc/sysconfig/redis  
lockfile=/var/lock/subsys/redis  
start() {  
    [ -x $redis ] || exit 5  
    [ -f $REDIS_CONF_FILE ] || exit 6  
    echo -n $"Starting $prog: "  
    daemon $redis $REDIS_CONF_FILE  
    retval=$?  
    echo  
    [ $retval -eq 0 ] && touch $lockfile  
    return $retval  
}  
stop() {  
    echo -n $"Stopping $prog: "  
    killproc $prog -QUIT  
    retval=$?  
    echo  
    [ $retval -eq 0 ] && rm -f $lockfile  
    return $retval  
}  
restart() {  
    stop  
    start  
}  
reload() {  
    echo -n $"Reloading $prog: "  
    killproc $redis -HUP  
    RETVAL=$?  
    echo  
}  
force_reload() {  
    restart  
}  
rh_status() {  
    status $prog  
}  
rh_status_q() {  
    rh_status >/dev/null 2>&1  
}  
case "$1" in  
    start)  
        rh_status_q && exit 0  
        $1  
        ;;  
    stop)  
        rh_status_q || exit 0  
        $1  
        ;;  
    restart|configtest)  
        $1  
        ;;  
    reload)  
        rh_status_q || exit 7  
        $1  
        ;;  
    force-reload)  
        force_reload  
        ;;  
    status)  
        rh_status  
        ;;  
    condrestart|try-restart)  
        rh_status_q || exit 0  
    ;;  
    *)  
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart| reload|orce-reload}"  
        exit 2  
esac
  • 修改權限:
chmod 755 /etc/init.d/redis
  • 啟動服務:
service redis start
  • 停止服務:
service redis stop
  • 重啟服務:
service redis restart

Redis 客戶端


Redis GUI 管理工具


Redis 主從架構


Redis 主從架構

  • 假設有兩臺服務器蜜氨,一臺做主,一臺做從
    • Redis 主信息:
      • IP:12.168.1.114=
      • 端口:6379
    • Redis 從信息:
      • IP:12.168.1.115
      • 端口:6379
  • 編輯從機的 Redis 配置文件捎泻,找到 210 行(大概)飒炎,默認這一行應該是注釋的:# slaveof <masterip> <masterport>
  • 我們需要去掉該注釋,并且填寫我們自己的主機的 IP 和 端口笆豁,比如:slaveof 192.168.1.114 6379
  • 配置完成后重啟從機 Redis 服務
  • 重啟完之后郎汪,進入主機的 redis-cli 狀態(tài)下,輸入:INFO replication
    • 可以查詢到當前主機的 redis 處于什么角色闯狱,有哪些從機已經連上主機怒竿。
  • 此時已經完成了主從配置,我們可以測試下:
    • 我們進入主機的 redis-cli 狀態(tài)扩氢,然后 set 某個值耕驰,比如:set myblog YouMeek.com
  • 我們切換進入從機的 redis-cli 的狀態(tài)下,獲取剛剛設置的值看是否存在:get myblog录豺,此時朦肘,我們可以發(fā)現(xiàn)是可以獲取到值的。
  • 但是有一個需要注意的:從庫不具備寫入數(shù)據能力双饥,不然會報錯媒抠。 從庫只有只讀能力。

Redis主從從架構

  • Redis 主從從的意思:看桌面上的截圖咏花。
  • 優(yōu)點趴生,除了減少主庫連接的壓力,還有可以關掉主庫的持久化功能昏翰,把持久化的功能交給從庫進行處理苍匆。
  • 第一個從庫配置的信息是連上主庫,后面的第二個從庫配置的連接信息是連上第一個從庫棚菊, 假如還有第三個從庫的話浸踩,我們可以把第三個從庫的配置信息連上第二個從庫上,以此類推统求。

Windows 版本的 Redis


  • Windows 是別人改造的版本检碗,需要到這里下載:https://github.com/MSOpenTech/redis/releases
  • 使用 .msi 后綴的文件進行安裝据块,此安裝包自帶安裝 Windows 服務
  • 配置文件也跟原版本不一樣,叫做:redis.windows.conf

資料


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末折剃,一起剝皮案震驚了整個濱河市另假,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌怕犁,老刑警劉巖边篮,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異因苹,居然都是意外死亡苟耻,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門扶檐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凶杖,“玉大人,你說我怎么就攤上這事款筑≈球穑” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵奈梳,是天一觀的道長杈湾。 經常有香客問我,道長攘须,這世上最難降的妖魔是什么漆撞? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮于宙,結果婚禮上浮驳,老公的妹妹穿的比我還像新娘。我一直安慰自己捞魁,他們只是感情好至会,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著谱俭,像睡著了一般奉件。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上昆著,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天县貌,我揣著相機與錄音,去河邊找鬼宣吱。 笑死窃这,一個胖子當著我的面吹牛,可吹牛的內容都是我干的征候。 我是一名探鬼主播杭攻,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼疤坝!你這毒婦竟也來了兆解?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤跑揉,失蹤者是張志新(化名)和其女友劉穎锅睛,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體历谍,經...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡现拒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了望侈。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片印蔬。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖脱衙,靈堂內的尸體忽然破棺而出侥猬,到底是詐尸還是另有隱情,我是刑警寧澤捐韩,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布退唠,位于F島的核電站,受9級特大地震影響荤胁,放射性物質發(fā)生泄漏瞧预。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一仅政、第九天 我趴在偏房一處隱蔽的房頂上張望垢油。 院中可真熱鬧,春花似錦已旧、人聲如沸秸苗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽惊楼。三九已至,卻和暖如春秸讹,著一層夾襖步出監(jiān)牢的瞬間檀咙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工璃诀, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留弧可,地道東北人。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓劣欢,卻偏偏與公主長得像棕诵,于是被迫代替她去往敵國和親裁良。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內容