NoSQL数据库之Redis数据库:Redis的介绍与安装部署(redis-2.8.19/3.2.5)
NoSQL(NoSQL = Not Only SQL),它指的是非關(guān)系型的數(shù)據(jù)庫。隨著互聯(lián)網(wǎng)web2.0網(wǎng)站的興起,傳統(tǒng)的關(guān)系數(shù)據(jù)庫在應(yīng)付web2.0網(wǎng)站,特別是超大規(guī)模和高并發(fā)的SNS類型的web2.0純動態(tài)網(wǎng)站已經(jīng)顯的力不從心,暴露了很多難以克服的問題,而非關(guān)系型的數(shù)據(jù)庫則由于其本身的特點(diǎn)得到了非常迅速的發(fā)展。
?
NoSQL的特點(diǎn):
特點(diǎn)一:
是以key-value形式存儲,和傳統(tǒng)的關(guān)系型數(shù)據(jù)庫不一樣,不一定遵循傳統(tǒng)數(shù)據(jù)庫的一些基本要求,比如說遵循SQL標(biāo)準(zhǔn)、ACID屬性、表結(jié)構(gòu)等等,這類數(shù)據(jù)庫主要有以下特點(diǎn):非關(guān)系型的、分布式的、開源的、水平可擴(kuò)展的。
?
特點(diǎn)二:
處理超大量的數(shù)據(jù)比Mysql等有優(yōu)勢。
運(yùn)行在便宜的PC服務(wù)器集群上。
擊碎了性能瓶頸。(MySQL的時(shí)候需要很多優(yōu)化,但是NoSQL不需要,性能非常高)
?
特點(diǎn)三(性能方面):
對數(shù)據(jù)高并發(fā)讀寫。(對MySQL進(jìn)行上萬次讀的請求可能頂?shù)米?#xff0c;但是如果對MySQL進(jìn)行上萬次的寫的時(shí)候,硬盤IO要求就比較高,效率就比較低下,但是NoSQL就比較方面。)
對海量數(shù)據(jù)的高效率存儲和訪問。
對數(shù)據(jù)的高可擴(kuò)展和高可用性。(NoSQL可以增加一個(gè)服務(wù)器節(jié)點(diǎn),使用NoSQL來做分布式比較簡單,因?yàn)闆]有固定的表結(jié)構(gòu),所以更改比較方便)。
?
Redis的介紹:
Redis是一個(gè)開源的,先進(jìn)的key-value存儲。它通常被稱為數(shù)據(jù)結(jié)構(gòu)服務(wù)器,因?yàn)殒I可以包含字符串,哈希,鏈表,集合和有序集合。
Redis是一個(gè)key-value存儲系統(tǒng)。它支持存儲的value類型很多,包括string(字符串)、list(鏈表)、set(集合)、zset(有序集合)。這些數(shù)據(jù)類型都支持push/pop、add/remove及取交集和并集及更豐富的操作,Redis支持各種不同方式的序列。為了保證效率,都是緩存在內(nèi)存中的,它也可以周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記錄文件。
?
Redis的使用場合:
在新浪微博Redis的部署場景很多,大概分為如下2種:
應(yīng)用程序直接訪問Redis數(shù)據(jù)庫。
應(yīng)用程序直接訪問Redis,只有當(dāng)Redis訪問失敗時(shí)才訪問MySQL
?
把大象裝冰箱的過程:
???Redis數(shù)據(jù)庫提供多中靈活的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)操作,為不同的大象構(gòu)建不同的冰箱。
?
Redis具體的適用場景:
取最新N個(gè)數(shù)據(jù)庫的操作
排行榜應(yīng)用,取TOP N操作
需要精確設(shè)定過期時(shí)間的應(yīng)用
計(jì)數(shù)器應(yīng)用
Uniq操作,獲取某段時(shí)間所有數(shù)據(jù)排重值
實(shí)時(shí)系統(tǒng),反垃圾系統(tǒng)。
Pub/Sub構(gòu)建實(shí)時(shí)消息系統(tǒng)(Redis獨(dú)有的發(fā)布和訂閱系統(tǒng))
構(gòu)建隊(duì)列系統(tǒng)
緩存。
?
Redis的安裝與部署
第一步:
Redis的官方下載站是:http://redis.io/download
最好使用Stable版本(穩(wěn)定版本)。
?
第二步:編譯源程序
tar zxvf redis-2.8.19.tar.gz
cd redis-2.8.19
make
cd src && make install??(注意權(quán)限問題)
網(wǎng)上安裝方式: |
$ wget http://download.redis.io/releases/redis-2.8.19.tar.gz $ tar xzf redis-2.8.19.tar.gz $ cd redis-2.8.19 $ make |
?
?
步驟三:
移動文件,便于管理:
mkdir –p /usr/local/redis/bin
mkdir –p /usr/local/redis/etc
mv /home/toto/redis/redis-2.8.19/redis.conf? /usr/local/redis/etc/
cd src
mv mkreleasehdr.sh redis-benchmarkredis-check-aof redis-check-dump redis-cli redis-server /usr/local/redis/bin/???(也就是說移動的是所有的可執(zhí)行的文件)
?
第四步:啟動Redis服務(wù):
/usr/local/redis/bin/redis-server?(或者到/usr/local/redis/bin目錄下,執(zhí)行:./redis-server)
可以指定配置文件:
/usr/local/redis/etc/redis.conf (可以在./redis-server后面加上這個(gè)配置文件)
Redis服務(wù)端的默認(rèn)連接端口是6379?(mongodb的端口號是:27017和28017端口)
?
第五步:
客戶端連接:/usr/local/redis/bin/redis-cli?(cli是client的縮寫)。
退出客戶端的方式是通過exit或者通過quit的方式。
?
步驟六:
停止Redis實(shí)例
我們可以使用/usr/local/redis/bin/redis-cli然后再
shutdown
也可以使用pkill redis-server??或者kill -9來實(shí)現(xiàn)。
?
Redis的配置:
daemonize:如果需要在后臺運(yùn)行,把該項(xiàng)改為yes |
pidfile:配置多個(gè)pid的地址默認(rèn)在/var/run/redis.pid |
bind:綁定ip,設(shè)置后只接受來自該ip的請求 |
port:監(jiān)聽端口,默認(rèn)為6379 |
timeout:設(shè)置客戶端連接時(shí)的超時(shí)時(shí)間,單位為秒 |
loglevel:分為4級,debug、verbose、notice、warning |
logfile:配置log文件地址 |
databases:設(shè)置數(shù)據(jù)庫的個(gè)數(shù),默認(rèn)使用的數(shù)據(jù)庫為0 |
save:設(shè)置redis進(jìn)行數(shù)據(jù)庫鏡像的頻率。(備份數(shù)據(jù)) |
rdbcompression:在進(jìn)行鏡像備份時(shí),是否進(jìn)行壓縮 |
dbfilename:鏡像備份文件的文件名 |
dir:數(shù)據(jù)庫鏡像備份的文件放置路徑 |
slaveof:設(shè)置數(shù)據(jù)庫為其它數(shù)據(jù)庫的從數(shù)據(jù)庫。 |
masterauth:主數(shù)據(jù)庫連接需要的密碼驗(yàn)證。 |
requirepass:設(shè)置登錄時(shí)需要使用的密碼。 |
maxclients:限制同時(shí)連接的客戶數(shù)量。 |
maxmemory:設(shè)置redis能夠使用的最大內(nèi)存。 |
appendonly:開啟append only模式。 |
appendfsync:設(shè)置對appendonly.aof文件進(jìn)行同步的頻率。 |
vm-enabled:是否開啟虛擬內(nèi)存支持。 |
vm-swap-file:設(shè)置虛擬內(nèi)存的交換文件路徑。 |
vm-max-memory:設(shè)置redis使用的最大物理內(nèi)存大小。 |
vm-page-size:設(shè)置虛擬內(nèi)存的頁的大小 |
vm-pages:設(shè)置交換文件的總的page數(shù)量 |
vm-max-threads設(shè)置VMIO同時(shí)使用的線程數(shù)量。 |
glueoutputbuf:把小的輸出緩存存放在一起。 |
hash-max-zipmap-entries:設(shè)置hash的臨界值 |
activerehashing:重新hash |
查看進(jìn)程的方式:ps –ef | grep “redis”
查看端口的方式:netstat -tunpl | grep 6379
-------------------------------------------------------------------------------------------------------------------------------------------------------
redis服務(wù)器安裝(其他方式)
用源碼工程來編譯安裝
1/ 到官網(wǎng)下載最新stable版
2/ 解壓源碼并進(jìn)入目錄?
?cd?/home/tuzq/software
mkdir?redis-src
tar -zxvf redis-3.2.5.tar.gz -C ./redis-src/
/home/tuzq/software/redis-src/redis-3.2.5
3/?make
如果報(bào)錯(cuò)提示缺少gcc,則安裝gcc :? yum install -y gcc
如果報(bào)錯(cuò)提示:Newer version ofjemalloc required
則在make時(shí)加參數(shù):make MALLOC=libc
?
4/ 安裝redis,指定安裝目錄,如 /usr/local/redis
make PREFIX=/usr/local/redis install
?
6/ 拷貝一份配置文件到安裝目錄下
切換到源碼目錄,里面有一份配置文件redis.conf,然后將其拷貝到安裝路徑下
cp redis.conf /usr/local/redis/
?
7/ 啟動redis
cd /usr/local/redis
bin/redis-server redis.conf ? (如果想后臺進(jìn)程運(yùn)行,修改:daemonize yes)?
8 連接redis
另開一個(gè)xshell,然后:
#cd /usr/local/redis/
[root@hadoop redis]# bin/redis-cli?
127.0.0.1:6379>
注意:為了讓機(jī)器能夠遠(yuǎn)程連接服務(wù)器上的redis,需要將redis.conf中的bind值改成訪問機(jī)器的ip地址,不要用127.0.0.1
1、如果想遠(yuǎn)程訪問redis,需要對redis配置ip
配置的方式是:
cd /usr/local/redis vim redis.conf 將bind的id換成真實(shí)的ip地址,比如: bind 192.168.106.81 |
2、在集群配置中,要對redis配置密碼,修改的配置是:
cd /usr/local/redis vim redis.conf requirepass accountOne ? ?(這里設(shè)置一個(gè)密碼:accountOne) |
3、另外若想遠(yuǎn)程訪問,需要將6379的防火墻端口號放開
bin/redis-cli -h 192.168.106.81 -p 6379 ? ?通過這種方式可以連接到192.168.106.81這臺服務(wù)器上的redis. ? 注意:若想讓它能夠被連同192.168.106.81這臺服務(wù)器上的redis.conf的bind屬性值要改成192.168.106.81
4、通過桌面客戶端連接驗(yàn)證的方式:
總結(jié)
以上是生活随笔為你收集整理的NoSQL数据库之Redis数据库:Redis的介绍与安装部署(redis-2.8.19/3.2.5)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: u盘能插上读不出来是怎么回事啊 U盘插上
- 下一篇: linux cmake编译源码,linu