Redis在百度百科裡的解釋:Redis是一個開源的使用ANSI C語言編寫、支援網絡、可基于記憶體亦可持久化的日志型、Key-Value資料庫,并提供多種語言的API,包括C#、Java、PHP等等,甚至連Javascript都做了很好的封裝。
可見Redis的資料是持久化的,可以分擔一個項目中的部分業務,Redis的資料是存儲在伺服器記憶體當中的,這樣可以極大的加快通路速度,因為記憶體的讀取速度遠遠超過磁盤和資料庫,這在很大程式的上解決了大并發的困惑;同時Redis和Memcached不同,會按照設定的規律定期将資料同步到磁盤資料庫,這樣在Redis伺服器當機時也能保證資料的完整性。
大家都知道Redis在全球最大的使用者是新浪微網誌,新浪有最大的Redis叢集,新浪最開始使用Memcached與Mysql配合,後來新浪又增加了Redis,而不是棄用Memcached,新浪加入Redis叢集的初衷:
1、Memcached存在命中率問題,這樣大量請求會發送到Mysql,對于新浪微網誌這麼大的并發無疑是一個災難,Redis不存在命中率問題
2、Redis相對于Memcached支援更多的資料類型,如string(字元串)、list(連結清單)、set(集合)、zset(有序集合)和hash(哈希類型)。這些資料類型都支援push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的
3、Redis主從叢集配置技術容易實作,維護成本低,項目複雜度低
4、Redis的持久化存儲從某種程度上解決了Cache當機帶來的雪崩現象
當然,新浪并沒有棄用Memcached+Mysql,使用者的全量資訊是在此結構中的,使用Redis帶來的問題是,資料是持久化的,這是相當占用記憶體的,成本不可小觑。
Redis(2.8.19目前最新穩定版本)的安裝:
1.下載下傳:
http://pan.baidu.com/s/1jGvJxBo
2.安裝
解壓下載下傳檔案:
[root@jhq0229 src]# tar xzvf redis-stable.tar.gz
編譯安裝:
[root@jhq0229 src]# cd redis-stable
[root@jhq0229 redis-stable]# make
[root@jhq0229 redis-stable]# make PREFIX=/usr/local install
配置:
[root@jhq0229 redis-stable]# mkdir /etc/redis
[root@jhq0229 redis-stable]# cp redis.conf /etc/redis/
建立Redis資料及日志存放目錄:
[root@jhq0229 redis-stable]# mkdir /data/redis
Redis配置檔案詳解:
配置自己的Redis叢集(若不配置叢集可以隻配置Master):
[root@jhq0229 redis-stable]# vim /etc/redis/redis.conf
我的Redis主從配置:
主:192.168.1.18 認證密碼:01130229
從:192.168.1.16
主Redis(Master)配置:
從Redis(Slave)配置,配置與Master類似,不一緻内容如下:
配置Redis開機啟動:
[root@jhq0229 redis-stable]# vim /etc/init.d/redis
内容如下:
[root@jhq0229 redis-stable]# chmod +x /etc/init.d/redis
[root@jhq0229 redis-stable]# chkconfig redis on
補充配置,配置停止服務前同步資料到磁盤:
[root@jhq0229 redis-stable]# vim /etc/sysctl.conf
進行如下修改:
vm.overcommit_memory=1
應用修改:
sysctl -p
啟動Redis:
[root@jhq0229 redis-stable]# service redis start
主從Redis的安裝和配置隻是配置檔案不同,其他的均一樣,一般主從配好就可以測試主從操作了,主server上set,從server馬上就可以get到了。
最後,奉上公司同僚辛勤總結的Redis學習資料。希望可以幫到你。
下載下傳位址: http://pan.baidu.com/s/1qWLV87a
PPT内容版權歸公司所有。