本篇內(nèi)容介紹了“NoSql數(shù)據(jù)庫的簡單介紹以及redis持久化數(shù)據(jù)服務(wù)”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)主要從事網(wǎng)站制作、成都做網(wǎng)站、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)岳西,十余年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220
NOSQL數(shù)據(jù)庫介紹
是一種非關(guān)系型數(shù)據(jù)庫服務(wù),它能解決常規(guī)數(shù)據(jù)庫的并發(fā)能力,比如傳統(tǒng)的數(shù)據(jù)庫的IO與性能的瓶頸,同樣它是關(guān)系型數(shù)據(jù)庫的一個補充,有著比較好的高效率與高性能。
專注于key-value查詢的redis、memcached、ttserver
解決以下問題:
1)對數(shù)據(jù)庫的高并發(fā)讀寫需求
2)大數(shù)據(jù)的高效存儲和訪問需求
3)高可擴展性和高可用性的需求
Nosql數(shù)據(jù)庫的應(yīng)用環(huán)境
1)數(shù)據(jù)模型比較簡單
2)需要靈活性更強的IT系統(tǒng)
3)對數(shù)據(jù)庫的性能要求較高
4)不需要高度數(shù)據(jù)一致性
5)對于給定KEY,比較容易映射復(fù)雜值的環(huán)境
Nosql軟件的分類與特點
1)key-value鍵值存儲數(shù)據(jù)庫(redis、memcached)
用于內(nèi)容緩存,適合負載并擴展大的數(shù)據(jù)集
數(shù)據(jù)類型是一系列的鍵值對
有快速查詢功能,但存儲數(shù)據(jù)少結(jié)構(gòu)化
對事務(wù)的支持不好,數(shù)據(jù)庫故障產(chǎn)生時不可進行回滾
2)列存儲數(shù)據(jù)庫(HBase)
用于分布式的文件系統(tǒng)
以列簇式存儲,將同一列數(shù)據(jù)存在一起
查找速度快,可擴展強,更容易進行分布式擴展
功能相對局限
3)面向文件的數(shù)據(jù)庫(MongoDB)
用于WEB應(yīng)用較多
數(shù)據(jù)類型是一系列鍵值對
查詢性能不高,沒有統(tǒng)一的查詢語法
4)圖形數(shù)據(jù)庫(Graph)
社交網(wǎng)絡(luò)應(yīng)用較多
不容易做分布式的集群方案
常用的Nosql數(shù)據(jù)庫介紹
1)memcached
是一個開源高性能的,具有分布式內(nèi)存對象的緩存系統(tǒng)
特點:
1、安裝布署簡單
2、支持高并發(fā)、高性能
3、通過程序或負載均衡可以實現(xiàn)分布式
4、僅為內(nèi)存緩存,重啟服務(wù)數(shù)據(jù)丟失
官方網(wǎng)站:http://memcached.org
2)memcacheDB
是新浪基于memcached開發(fā)的一個開源項目,具備了事務(wù)恢復(fù)功能
特點:
1、高并發(fā)讀寫
2、高效存儲
3、高可用數(shù)據(jù)存儲
官方網(wǎng)站:http://memcachedb.org/benchmark.html
生產(chǎn)環(huán)境如何選擇Nosql數(shù)據(jù)庫
1、最常規(guī)的緩存應(yīng)用,memcached最合適
2、持久化存儲方案memcacheDB
3、2000萬以內(nèi)數(shù)據(jù)量的小數(shù)據(jù)用memcached
4、大數(shù)據(jù)量可以用redis
redis持久化數(shù)據(jù)服務(wù)
REmote DIctionary server(redis)是一個基于key-value鍵值對的持久化數(shù)據(jù)庫存儲系統(tǒng),對支持數(shù)據(jù)存儲類型更多,包括字符串、列表、集合等
是一種持久化緩存服務(wù),會周期的把更新的數(shù)據(jù)寫入磁盤以及把修改操作記錄追加到文件里記錄下來,還支持主從同步模式,是一個開源的基于C語言編寫的,支持網(wǎng)絡(luò)、內(nèi)存可持久化的日志型、key-value數(shù)據(jù)庫
redis持久服務(wù)的特點
key-value鍵值類型存儲系統(tǒng)
支持數(shù)據(jù)可靠存儲
單進程單線程高性能服務(wù)器
恢復(fù)比較慢
單機qps(秒并發(fā))可以達到10W
適合小數(shù)據(jù)高速讀寫訪問
redis存儲系統(tǒng)優(yōu)、缺點:
可以持久化存儲數(shù)據(jù)
支持每秒10W的讀寫頻率
支持豐富的數(shù)據(jù)類型
所有操作都是原子性的
支持異機主從復(fù)制
內(nèi)存管理開銷大(低于物理內(nèi)存的3/5)
不同命令延遲差別大
官方網(wǎng)站:http://www.redis.io
redis持久化介紹
redis將數(shù)據(jù)存儲于內(nèi)存中,通過快照、日志兩種方式實現(xiàn)持久化存儲,前者性能高,會有數(shù)據(jù)丟失的情況,后者相反。
redis應(yīng)用場景
MySQL+memcached網(wǎng)站架構(gòu)的問題:數(shù)據(jù)量大就需要拆表,需要擴容,數(shù)據(jù)一致性是個問題
1)***應(yīng)用場景就是內(nèi)存服務(wù)
2)作為memcached替代方案
3)對數(shù)據(jù)一致性有一定要求但不高的業(yè)務(wù)
4)需要更多數(shù)據(jù)類型支持的業(yè)務(wù)
5)需要主從同步及負載均衡的業(yè)務(wù)
redis的安裝
要進行主從同步配置,可以實現(xiàn)故障切換,主上禁用數(shù)據(jù)持久化,從上配置,內(nèi)存要夠大
wget http://download.redis.io/releases/redis-2.8.24.tar.gz [root@redis-m tools]#tar zxf redis-2.8.24.tar.gz [root@redis-m tools]#cd redis-2.8.24 [root@redis-m redis-2.8.24]#make [root@redis-m redis-2.8.24]#make PREFIX=/application/redis-2.8.24 install [root@redis-m redis-2.8.24]#ln -s /application/redis-2.8.24 /application/redis [root@redis-m tools]# tree /application/redis /application/redis `-- bin |-- redis-benchmark #性能測試工具 |-- redis-check-aof #檢測更新日志 |-- redis-check-dump #檢查本地數(shù)據(jù)庫rdb文件 |-- redis-cli #命令行客戶端操作工具 |-- redis-sentinel -> redis-server `-- redis-server #服務(wù)的啟動程序
配置環(huán)境變量
[root@redis-m tools]# echo "PATH=/application/redis/bin:$PATH">>/etc/profile [root@redis-m tools]# source /etc/profile [root@redis-m tools]# which redis-server /application/redis/bin/redis-server
查看幫助文檔
[root@redis-m tools]# redis-server --help Usage: ./redis-server [/path/to/redis.conf] [options] ./redis-server - (read config from stdin) ./redis-server -v or --version ./redis-server -h or --help ./redis-server --test-memoryExamples: ./redis-server (run the server with default conf) ./redis-server /etc/redis/6379.conf ./redis-server --port 7777 ./redis-server --port 7777 --slaveof 127.0.0.1 8888 ./redis-server /etc/myredis.conf --loglevel verbose
啟動服務(wù)
[root@redis-m ~]# cd /application/redis/ [root@redis-m redis]# ll total 4 drwxr-xr-x 2 root root 4096 Mar 22 04:50 bin [root@redis-m redis]# mkdir conf [root@redis-m redis]# cp /download/tools/redis-2.8.24/redis.conf ./conf/ [root@redis-m redis]# redis-server /application/redis/conf/redis.conf & [6072] 22 Mar 05:00:51.373 # Server started, Redis version 2.8.24 [6072] 22 Mar 05:00:51.374 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
#內(nèi)存不足的時候,數(shù)據(jù)加載到磁盤可能失效,可以使用命令解決或修改配置文件
[6072] 22 Mar 05:00:51.375 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. [6072] 22 Mar 05:00:51.375 * The server is now ready to accept connections on port 6379 [root@redis-m redis]# lsof -i :6379 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME redis-ser 6072 root 4u IPv6 24271 0t0 TCP *:6379 (LISTEN) redis-ser 6072 root 5u IPv4 24273 0t0 TCP *:6379 (LISTEN) vm.overcommit_memory
0表示用戶空間請求更多內(nèi)存時,內(nèi)核嘗試估算出余下可用內(nèi)存
1表示內(nèi)核允許***限度的的使用內(nèi)存
關(guān)閉服務(wù)命令
[root@redis-m redis]# redis-cli shutdown [6072] 22 Mar 05:09:32.699 # User requested shutdown... [6072] 22 Mar 05:09:32.699 * Saving the final RDB snapshot before exiting. [6072] 22 Mar 05:09:32.710 * DB saved on disk [6072] 22 Mar 05:09:32.711 # Redis is now ready to exit, bye bye... [1]+ Done redis-server /application/redis/conf/redis.conf
“NoSQL數(shù)據(jù)庫的簡單介紹以及redis持久化數(shù)據(jù)服務(wù)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!