背景:在項目互聯網項目開發中咱們常常須要緩存熱點數據,在作熱點數據緩存時有2個經常使用的方案redis
redis簡介
redis是一個key-value存儲系統。和Memcached相似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hashs(哈希類型)。這些數據類型都支持push/pop、add/remove及取交集並集和差集及更豐富的操做,並且這些操做都是原子性的。在此基礎上,redis支持各類不一樣方式的排序。與memcached同樣,爲了保證效率,數據都是緩存在內存中。區別的是redis會週期性的把更新的數據寫入磁盤或者把修改操做寫入追加的記錄文件,而且在此基礎上實現了master-slave(主從)同步。數據庫
Redis 是一個高性能的key-value數據庫。 redis的出現,很大程度補償了memcached這類key/value存儲的不足,在部分場合能夠對關係數據庫起到很好的補充做用。它提供了Python,Ruby,Erlang,PHP客戶端,使用很方便。vim
1.memcached 以前有介紹到windows
2.redis(一個支持數據格式比memcached更豐富的方案,事實上memcached只支持一種數據格式)centos
環境:centos6.5+redis-2.8.19緩存
本文分爲兩個部分:第一部分介紹redis的安裝,第二部分降redis作成一系統服務memcached
一.redis安裝性能
將redis安裝到此目錄 ui
/usr/local/redis
將安裝包下載到此目錄 google
/usr/local/src
安裝詳細過程以下
$ mkdir /usr/local/redis $ cd /usr/local/src $ wget http://redis.googlecode.com/files/redis-2.8.19.tar.gz $ tar xzf redis-2.8.19.tar.gz $ ln -s redis-2.8.19 redis #創建一個軟連接 $ cd redis $ make PREFIX=/usr/local/redis install #安裝到指定目錄中
注意:這裏源碼包目錄和最終安裝目錄不是同一個目錄
咱們經過PREFIX指定了安裝的目錄。若是make失敗,通常是大家系統中還未安裝gcc,那麼能夠經過yum安裝:
yum install gcc
gcc安裝成功後繼續執行 make make install
在安裝redis成功後,你將能夠在/usr/local/redis看到一個bin的目錄,裏面包括瞭如下文件:
redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server
二:將redis作成一個服務
1.複製腳本到/etc/rc.d/init.d目錄
注意: /etc/rc.d/init.d/目錄下的腳本就相似與windows中的註冊表,在系統啓動的時候某些指定腳本將被執行
按以上步驟安裝Redis時,其服務腳本位於:
/usr/local/src/redis/utils/redis_init_script
必須將其複製到/etc/rc.d/init.d的目錄下:
cp /usr/local/src/redis/utils/redis_init_script /etc/rc.d/init.d/redis
將redis_init_script複製到/etc/rc.d/init.d/,同時易名爲redis
若是這時添加註冊服務:
chkconfig --add redis
將報如下錯誤:
redis服務不支持chkconfig
爲此,咱們須要更改redis腳本
2.更改redis腳本
打開使用vi打開腳本,查看腳本信息:
vim /etc/rc.d/init.d/redis
看到的內容以下(下內容是更改好的信息):
#!/bin/sh
#1.增長一行 #chkconfig: 2345 80 90 # Simple Redis init.d script conceived to work on Linux systems # as it does use of the /proc filesystem. REDISPORT=6379
#2.修改路徑 EXEC=/usr/local/redis/bin/redis-server CLIEXEC=/usr/local/redis/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..."
#3.redis開啓的命令,之後臺運行的方式執行 $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服務將
佔據在前臺,佔用了主用戶界面,形成其它的命令執行不了。
4.將redis配置文件拷貝到/etc/redis/${REDISPORT}.conf
mkdir /etc/redis cp /usr/local/src/redis/redis.conf /etc/redis/6379.conf
這樣,redis服務腳本指定的CONF就存在了。默認狀況下,Redis未啓用認證,能夠經過開啓6379.conf的requirepass 指定一個驗證密碼。
以上操做完成後,便可註冊yedis服務:
chkconfig --add redis
3.啓動redis服務
service redis start
4.將redis加入path路徑
修改profile文件:
vi /etc/profile 在最後行追加: export PATH="$PATH:/usr/local/redis/bin"
應用這個文件:
. /etc/profile
這樣就能夠直接調用redis-cli的命令了,以下所示:
127.0.0.1:6379> get 1
"cary"
127.0.0.1:6379> set 2 'david'
OK
127.0.0.1:6379> get 2
"david"
至此,redis 就成功安裝了。