1. 程式人生 > >Redis入門及安裝

Redis入門及安裝

一、什麼是Redis

Redis是Remote Dictionary Server(遠端資料服務)的縮寫,由義大利人antirez(Salvatore Sanflippo) 開發的一款 記憶體高速快取資料庫,該軟體使用C語言編寫,它的資料模型為(key-value),它支援豐富的資料結構(型別),如:字串(strings)、雜湊(hashes)、 列表(lists)、 集合(sets)、 有序集合(sorted sets) 。可持久化,保證了資料安全

Redis的持久化   例:如果伺服器斷電,記憶體資料是不會丟失的,它會一邊執行,一邊備份硬碟中一份,當通電它就會將硬碟資料還原載入到記憶體中。

快取有兩種型別:資料快取、頁面快取(smarty)

快取的優點:使用快取減輕資料庫的負載。

快取的兩種形式
1.頁面快取經常用在CMS記憶體管理系統裡邊
2.資料快取經常會用在頁面的具體資料裡邊

在開發網站的時候如果有一些資料在短時間之內不會發生變化,而它們還要被頻繁訪問,為了提高使用者的請求速度和降低網站的負載,就把這些資料放到一個讀取速度更快的介質上 (或者是通過較少的計算量就可以獲得該資料) ,該行為就稱作對該資料的快取。該介質可以是檔案、資料庫、記憶體,記憶體經常用於資料快取。

二、 redis和memcache比較

①Redis不僅僅支援簡單的k/V型別的資料,同時還提供list, set, zset, hash等資料結構的儲存。

②Redis支援master-slave(主一從)模式應用。

③Redis支援資料的持久化,可以將記憶體中的資料保持在磁碟中,重啟的時候可以再次載入進行使用。

④Redis單個value的最大限制是1GB, memcached只能儲存1MB的資料。
 

三、安裝Redis

2、CentOS-6.8系統root使用者下上傳tar檔案到指定目錄,解壓。

2.1進入到redis解壓目錄,直接使用make指令使用編譯

2.2錯誤處理:執行make遇到錯誤提示  gcc: 命令未找到

[[email protected] redis-3.2.6]# make
...
MAKE hiredis
cd hiredis && make static
make[3]: Entering directory `/usr/local/java/redis-3.2.6/deps/hiredis'
gcc -std=c99 -pedantic -c -O3 -fPIC  -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb  net.c
make[3]: gcc:命令未找到
make[3]: *** [net.o] 錯誤 127
make[3]: Leaving directory `/usr/local/java/redis-3.2.6/deps/hiredis'
make[2]: *** [hiredis] 錯誤 2
make[2]: Leaving directory `/usr/local/java/redis-3.2.6/deps'
make[1]: [persist-settings] 錯誤 2 (忽略)
    CC adlist.o
/bin/sh: cc: command not found
make[1]: *** [adlist.o] 錯誤 127
make[1]: Leaving directory `/usr/local/java/redis-3.2.6/src'
make: *** [all] 錯誤 2

問題原因:這是由於系統沒有安裝gcc環境,因此在進行編譯時才會出現上面提示。

解決方法:安裝gcc在linux環境有網的情況下執行命令: 

[[email protected] ~]# yum -y install gcc automake autoconf libtool make

[[email protected] ~]# yum install gcc-c++

再次執行又遇到錯誤:

[[email protected] redis-3.2.6]# make
cd src && make all
make[1]: Entering directory `/usr/local/java/redis-3.2.6/src'
    CC adlist.o
在包含自 adlist.c:34 的檔案中:
zmalloc.h:50:31: 錯誤:jemalloc/jemalloc.h:沒有那個檔案或目錄
zmalloc.h:55:2: 錯誤:#error "Newer version of jemalloc required"
make[1]: *** [adlist.o] 錯誤 1
make[1]: Leaving directory `/usr/local/java/redis-3.2.6/src'
make: *** [all] 錯誤 2

原因及解決:因為上次編譯失敗,有殘留的檔案,所以需要執行以下命令:

[[email protected] redis-3.2.6]# # make distclean

然後再次執行:

[[email protected] redis-3.2.6]# make

或者:

[[email protected] redis-3.2.6]# make install

執行通過:

3、進入到src目錄檢視他的子檔案  解釋

4、建立Redis執行目錄,並copy兩個檔案過去:

[[email protected] src]# mkdir /usr/local/redis
[[email protected] src]# cp redis-cli redis-server /usr/local/redis/

 4.1退到上層目錄(redis的解壓檔案目錄中),將redis.conf配置檔案也copy到Redis執行目錄中:

[[email protected] redis-3.2.6]# pwd
/usr/local/java/redis-3.2.6
[[email protected] redis-3.2.6]# ls
00-RELEASENOTES  COPYING  Makefile   redis.conf       runtest-sentinel  tests
BUGS             deps     MANIFESTO  runtest          sentinel.conf     utils
CONTRIBUTING     INSTALL  README.md  runtest-cluster  src
[[email protected] redis-3.2.6]# cp redis.conf /usr/local/redis/

5、進入到redis的執行目錄,前端啟動redis服務成功的標誌(棧中):Ctrl+C退出

6、後端啟動redis服務,修改配置檔案redis.conf將128行設定為yes則為後臺啟動:

[[email protected] ~]# cd /usr/local/redis/
[[email protected] redis]# ls
redis-cli  redis.conf  redis-server
[[email protected] redis]# vim redis.conf 

 執行./redis-server redis.conf 在後臺啟動redis服務:

[[email protected] redis]# pwd
/usr/local/redis
[[email protected] redis]# ps -A |grep redis
[[email protected] redis]# ./redis-server redis.conf 
[[email protected] redis]# ps -A |grep redis
  9405 ?        00:00:00 redis-server
[[email protected] redis]# 

7、redis的簡單操作(設定和讀取變數):

[[email protected] redis]# ls
redis-cli  redis.conf  redis-server
[[email protected] redis]# ./redis-cli 
127.0.0.1:6379> set name bob
OK
127.0.0.1:6379> set age 23
OK
127.0.0.1:6379> set height 180
OK
127.0.0.1:6379> get name
"bob"
127.0.0.1:6379> get age
"23"
127.0.0.1:6379> get height
"180"
127.0.0.1:6379>