redis安裝配置及參數解析

redis簡介

redis定義

Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基于內存亦可持久化的日志型、Key-Value數據庫,并提供多種語言的API。

redis是一個key-value存儲系統。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。這些數據類型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎上實現了master-slave(主從)同步。

Redis 是一個高性能的key-value數據庫。 redis的出現,很大程度補償了memcached這類key/value存儲的不足,在部 分場合可以對關系數據庫起到很好的補充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客戶端,使用很方便。

Redis支持主從同步。數據可以從主服務器向任意數量的從服務器上同步,從服務器可以是關聯其他從服務器的主服務器。這使得Redis可執行單層樹復制。存盤可以有意無意的對數據進行寫操作。由于完全實現了發布/訂閱機制,使得從數據庫在任何地方同步樹時,可訂閱一個頻道并接收主服務器完整的消息發布記錄。同步對讀取操作的可擴展性和數據冗余很有幫助。

redis特點

Redis從它的許多競爭繼承來的三個主要特點:

1).Redis數據庫完全在內存中,使用磁盤僅用于持久性。

2).相比許多鍵值數據存儲,Redis擁有一套較為豐富的數據類型。

3).Redis可以將數據復制到任意數量的從服務器。

redis優勢

異常快速:Redis的速度非常快,每秒能執行約11萬集合,每秒約81000+條記錄。

支持豐富的數據類型:Redis支持最大多數開發人員已經知道像列表,集合,有序集合,散列數據類型。這使得它非常容易解決各種各樣的問題,因為我們知道哪些問題是可以處理通過它的數據類型更好。

操作都是原子性:所有Redis操作是原子的,這保證了如果兩個客戶端同時訪問的Redis服務器將獲得更新后的值。

多功能實用工具:Redis是一個多實用的工具,可以在多個用例如緩存,消息,隊列使用(Redis原生支持發布/訂閱),任何短暫的數據,應用程序,如Web應用程序會話,網頁命中計數等。

redis安裝配置

redis安裝

cd /home/tools
wget http://download.redis.io/releases/redis-3.0.3.tar.gz
tar xf redis-3.0.3.tar.gz
cd redis-3.0.3
make
make install
cp redis.conf /etc/
ln -s /home/tools/redis-3.0.3 /home/redis

redis命令介紹

make install命令執行完成后,會在/usr/local/bin目錄下生成本個可執行文件,分別是redis-server、redis-cli、redis-benchmark、redis-check-aof 、redis-check-dump:它們的作用如下:

redis-server:Redis服務器的daemon啟動程序

redis-cli:Redis命令行操作工具。也可以用telnet根據其純文本協議來操作

redis-benchmark:Redis性能測試工具,測試Redis在當前系統下的讀寫性能

redis-check-aof:數據修復

redis-check-dump:檢查導出工具

修改系統配置文件

echo vm.overcommit_memory=1 >> /etc/sysctl.conf
sysctl vm.overcommit_memory=1 或執行echo vm.overcommit_memory=1 >>/proc/sys/vm/overcommit_memory

使用數字含義

0,表示內核將檢查是否有足夠的可用內存供應用進程使用;如果有足夠的可用內存,內存申請允許;否則,內存申請失敗,并把錯誤返回給應用進程。

1,表示內核允許分配所有的物理內存,而不管當前的內存狀態如何。

2,表示內核允許分配超過所有物理內存和交換空間總和的內存。

redis配置文件參數

daemonize yes       #是否以后臺daemon方式運行
pidfile /var/run/redis.pid      #pid文件位置
port 6379      #監聽端口號
tcp-backlog 511      #listen隊列的長度
bind 192.168.2.10      #綁定ip地址,多個ip用空格分隔
timeout 0      #客戶端空閑多少s后踢掉,0禁止
tcp-keepalive 0      #檢測掛掉的連接,單位s,0禁止
loglevel notice      #日志的等級,debug,verbose,notice,warning
logfile "/home/log/redis"      #log文件的路徑,為空的話直接顯示在終端
databases 16      #redis中有多少個數據庫

#將redis內存數據序列化到磁盤的時間和頻率,900s有1個key改變就會序列化
save 900 1
save 300 10
save 60 10000

stop-writes-on-bgsave-error yes      #序列化的時候是否停止寫操作
rdbcompression yes      #序列化的數據是否壓縮
rdbchecksum yes      #序列化的數據是否校驗其完整性
dbfilename dump.rdb      #序列化的文件名,只是文件不能帶目錄
dir /tmp      #序列化文件的目錄

#以下是主從備份
# slaveof <masterip><masterport>
# masterauth <master-password>
slave-serve-stale-data yes
slave-read-only yes
# repl-ping-slave-period 10
# repl-timeout 60
repl-disable-tcp-nodelay no
# repl-backlog-size 1mb
# repl-backlog-ttl 3600
slave-priority 100
# min-slaves-to-write 3
# min-slaves-max-lag 10

#客戶端連接的密碼
requirepass 123456

#限制客戶端的數量
# maxclients 10000
#設置最大可用內存
# maxmemory <bytes>
#內存替換算法
# maxmemory-policy volatile-lru
#maxmemory-samples 3

啟動redis

redis-server /etc/redis.conf

**檢查是否啟動成功

ps -ef |grep redis 或lsof -i:6379

添加啟動腳本并加入開機啟動

cd /home/scripts/

redis.sh

#!/bin/sh
# chkconfig: 2345 21 60      #定義開關機優先順序,加入chkconfig必要配置
# description:redis start and stop and restart in chkconfig
. /etc/init.d/functions
function start(){
if [ ! -f /var/run/redis.pid ]
  then
    /usr/local/bin/redis-server /etc/redis.conf
    if [ $? -eq 0 ]
          then
        action "starting redis..." /bin/true
      else
        action "starting redis..." /bin/false
    fi
  else
    echo "redis is running"
    exit
fi
}
function stop(){
if [ -f /var/run/redis.pid ]
  then
PID=`cat /var/run/redis.pid`
    kill $PID
        if [ $? -eq 0 ]
          then
                action "stoping redis..." /bin/true
          else
                action "stoping redis..." /bin/false
        fi
  else
    echo "redis is stoped"
fi
}
case $1 in 
start)
    start
    sleep 1
    ;;
stop)
    stop
    sleep 1
    ;;
restart)
    stop
    sleep 1
    start
    ;;
*)
    echo "$0 please input {start|stop|restart}"
    exit
esac

添加執行權限

chmod +x redis.sh

添加到/etc/init.d/

cp redis.sh /etc/init.d/redis

添加開機自啟動

chkconfig redis on
chkconfig redis --list
redis           0:off   1:off   2:on    3:on    4:on    5:on    6:off
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,868評論 18 139
  • 轉載地址:http://gnucto.blog.51cto.com/3391516/998509 Redis與Me...
    Ddaidai閱讀 21,465評論 0 82
  • 1 Redis介紹1.1 什么是NoSql為了解決高并發、高可擴展、高可用、大數據存儲問題而產生的數據庫解決方...
    克魯德李閱讀 5,354評論 0 36
  • 要說周澤楷的心上人是誰,眾人支支吾吾連猜帶蒙能蹦出來各種稀奇古怪的答案。但要是問誰對周澤楷的追求最火熱,那大家絕對...
    絨毛絨毛閱讀 3,901評論 0 5
  • 分手,該不該當面說,這是《奇葩說》上上周的一個辯題,理性與感性的碰撞,看的感動不已,也讓我重新對分手有了新的認識,...
    末安笙閱讀 1,102評論 3 10