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>