今天做不成的事,明天也不會做好。
什么是redis?
1.核心概念
Redis是用C語言開發的高性能的鍵值對存儲的非關系數據庫。Redis存儲的數據類型有以下幾種:字符(String)、散列(Hash)、列表(List)、集合(Set)、有序集合(ZSet)
2.歷史發展
2008年,意大利的一家創業公司Merzia推出了一款基於MySQL的網站實時統計系統LLOOGG,然而沒過多久該公司的創始人 Salvatore Sanfilippo便對MySQL的性能感到失望,於是他決定親自為LLOOGG量身定做一個數據庫,並於2009年開發完成,這個數據庫就是Redis。 不過Salvatore Sanfilippo並不滿足只將Redis用於LLOOGG這一款產品,而是希望更多的人使用它,於是在同一年Salvatore Sanfilippo將Redis開源發布,並開始和Redis的另一名主要的代碼貢獻者Pieter Noordhuis一起繼續着Redis的開發,直到今天。 SalvatoreSanfilippo自己也沒有想到,短短的幾年時間,Redis就擁有了龐大的用戶群體。HackerNews在2012年發布了一份數據庫的使用情況調查,結果顯示有近12%的公司在使用Redis。國內如新浪微博、街旁網、知乎網,國外如GitHub、Stack Overflow、Flickr等都是Redis的用戶。
VMware公司從2010年開始贊助Redis的開發, Salvatore Sanfilippo和Pieter Noordhuis也分別在3月和5月加入VMware,全職開發Redis。
reis的應用場景
-
緩存(數據查詢、短連接、新聞內容、商品內容等等)。(最多使用)
-
分布式集群架構中的session分離。
-
聊天室的在線好友列表。
-
任務隊列。(秒殺、搶購、12306等等)
-
應用排行榜。
-
網站訪問統計。
-
數據過期處理(可以精確到毫秒)
redis在linux下的安裝
安裝
#安裝C語言環境(已經安裝可跳過) yum install gcc-c++ #下載壓縮包 wget http://download.redis.io/releases/redis-4.0.1.tar.gz #解壓 tar -zxvf redis-4.0.1.tar.gz #進入解壓目錄並編譯Redis cd redis-4.0.1 #進行編譯 make #安裝Redis make install PREFIX=/usr/local/redis
PREFIX后面的/usr/local/redis是安裝路徑,我們啟動redis的文件都在這里,也可以自定義。出現如下提示則安裝成功:
make[1]: Entering directory `/root/redis-3.0.6/src' Hint: It's a good idea to run 'make test' ;) INSTALL install INSTALL install INSTALL install INSTALL install INSTALL install make[1]: Leaving directory `/root/redis-3.0.6/src
拷貝配置文件並運行
接下把我們的配置文件redis.conf手動拷貝到安裝路徑,,以便開啟后台運行與遠程訪問。
#拷貝redis.conf文件 cp -r redis.conf /usr/local/redis/bin/
安裝路徑下的bin目錄結構
好了 現在我們可以輸入命令來運行redis了
#開啟服務端 ./redis-server redis.conf
#開啟新的窗口,運行客戶端進行連接
cd /usr/redis/ #鏈接此redis ./redis-cli 或者 ./redis-cli -h 127.0.0.1 -p 6379
-h:指定主機IP-p:指定主機端口默認主機IP是127.0.0.1 默認端口 6379不填則使用默認值
成功並進行如下測試
但不可能每次都開兩個窗口,我們需要配置后台運行;同時我們用程序連接也需要遠程連接,接下來我們進行設置
設置后台進行和遠程連接
接下里我們在配置文件redis.conf中進行相關的配置
#打開配置文件 vim redis.conf
在vim編輯模式下,輸入行數+gg可以快捷跳行。例如跳到第138行,輸入:138gg
設置后台啟動
將第138行的daemonize no修改為daemonize yes即可
開啟遠程訪問
將第70行的bind注釋,第90行將protected-mode改為no
設置密碼
取消第502行的注釋,並修改密碼
接下來重啟redis:
#首先查詢到redis的pid后,kill掉,然后重啟 [root@localhost bin]# ps -ef|grep redis root 20940 1 0 12:12 ? 00:00:18 ./redis-server *:6379 [root@localhost bin]# kill 20940 [root@localhost bin]# ./redis-server redis.conf
后台啟動成功如下:
最后我們使用redis客戶端通過密碼遠程連接:
#遠程連接 ./redis-cli -h 你服務器的ip -p 6379 -a 你的密碼
雖然不輸入密碼也能登陸,但是無法進行get set操作