一、什麼是redis
redis是一個開源的高性能鍵值對數據庫。它通過提供多種鍵值數據類型來適應不同場景下的存儲需求;並藉助許多高層級的接口使其可以勝任如緩存、隊列系統等不同的角色。
redis數據庫中的所有數據都存儲在內存中。由於內存的讀寫速度遠快於硬盤,因此Redis在性能上對比其他基於硬盤存儲的數據庫有非常明顯的優勢,在一臺普通的筆記本電腦上,Redis可以在一秒內讀寫超過十萬個鍵值。
將數據存儲在內存中也有問題,例如,程序退出後內存中的數據會丟失。不過 Redis提供了對持久化的支持,即將可以內存中的數據異步寫入到硬盤中,同時不影響繼續提供服務。
二、redis和Memcached優劣
Redis可以爲每個鍵設置生存時間(Time To Live,TTL),生存時間到期後鍵會自動被刪除。這一功能配合出色的性能讓Redis可以作爲緩存系統來使用,而且由於Redis支持持久化和豐富的數據類型,使其成爲了另一個非常流行的緩存系統Memcached的有力競爭者。
在性能上Redis是單線程模型,而Memcached支持多線程,所以在多核服務器上後者的性能更高一些。所以在使用時更應該關心的是二者在功能上的區別,如果需要用到高級的數據類型或是持久化等功能,Redis將會是Memcached很好的替代品。
作爲緩存系統,Redis還可以限定數據佔用的最大內存空間,在數據達到空間限制後可以按照一定的規則自動淘汰不需要的鍵。
除此之外,Redis的列表類型鍵可以用來實現隊列,並且支持阻塞式讀取,可以很容易地實現一個高性能的優先級隊列。同時在更高層面上,Redis還支持“發布/訂閱”的消息模式,可以基於此構建聊天室等系統。
三、redis的應用場景
應用於存儲、隊列、緩存系統方面。
四、redis的安裝配置
1.安裝
1.1編譯安裝
下載安裝包後解壓即可使用make 命令完成編譯,完整的命令如下:
wget http://download.redis.io/redis-stable.tar.gz
tar xzf redis-stable.tar.gz
cd redis-stable
make
make install
make test命令測試Redis是否編譯正確
1.2yum安裝
可以使用操作系統中的軟件包管理器來安裝Redis,但目前大多數軟件包管理器中的Redis的版本都較古老。http://redis.io/topics/problems中列舉了一些在以往版本中存在的已知問題
2.redis啓動和停止
1.啓動
1.1直接啓動:直接運行redis-server即可啓動Redis,十分簡單
redis-serve
redis-server --port 6380
1.2通過初始化腳本啓動Redis
#!/bin/sh
##
Simple Redis init.d script conceived to work on Linux systems
#as it does use of the /proc filesystem.
REDISPORT=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli
PIDFILE=/var/run/redis_ {REDISPORT}.pid
CONF="/etc/redis/ {REDISPORT}.conf"
case " 1" in
start)
if [-f PIDFILE]
then
echo " PIDFILE exists, process is already running or crashed"
else
echo"Starting Redis server..."
EXEC CONF
fi
;;
stop)
if [ ! -f PIDFILE ]
then
echo " PIDFILE does not exist, process is not running"
else
PID= (cat PIDFILE)
echo "Stopping ..."
CLIEXEC -p REDISPORT shutdown
while [-x /proc/ {PID}]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
*)
echo "Please use start or stop as first argument"
;;
esac
我們需要配置Redis的運行方式和持久化文件、日誌文件的存儲位置等,具體步驟如下。
(1)配置初始化腳本。首先將初始化腳本複製到/etc/init.d目錄中,文件名爲redis_端口號,其中端口號表示要讓Redis監聽的端口號,客戶端通過該端口連接Redis。然後修改腳本第6行的REDISPORT變量的值爲同樣的端口號。
(2)建立需要的文件夾。
目錄名 說明
/etc/redis 存放redis的配置文件
/var/redis/端口號 存放redis的持久化文件
(3)修改配置文件。首先將配置文件模板(見 2.4 節介紹)複製到/etc/redis目錄中,以端口號命名(如“6379.conf”)
參數 值 說明
daemonize yes 使redis已守護進程模式運行
pidfile /var/run/redis_端口號.pid 設置redis的pid文件位置
port 端口號 設置redis監聽的端口號
4.redis在運維方面的知識
持久化(rdb、aof)、複製等
5.第三方redis管理工具
6.redi常用的命令及場景