關(guān)于Redis數(shù)據(jù)庫入門詳細(xì)介紹
1、Redis是什么?
非關(guān)系型數(shù)據(jù)庫:NoMsql
主流的 NoSQL 數(shù)據(jù)庫有Redis、 MongBD、 Hbase、 Memcached 等。
Redis譯為“遠(yuǎn)程字典服務(wù)”,它是一款基于內(nèi)存實(shí)現(xiàn)的鍵值型 NoSQL 數(shù)據(jù)庫, 通常也被稱為數(shù)據(jù)結(jié)構(gòu)服務(wù)器,這是因?yàn)樗梢源鎯?chǔ)多種數(shù)據(jù)類型,比如 string(字符串),hash(哈希散列),list(列表),set(集合)和 sorted set(有序集合)等。
Redis 遵守 BSD 協(xié)議,實(shí)現(xiàn)了免費(fèi)開源,其最新版本是 6.20,常用版本包括 3.0 、4.0、5.0。
自 Redis 誕生以來,它以其超高的性能、完美的文檔和簡潔易懂的源碼廣受好評,國內(nèi)外很多大型互聯(lián)網(wǎng)公司都在使用 Redis,比如騰訊、阿里、Twitter、Github 等等。
2、Redis特點(diǎn):
Redis 不僅可以將數(shù)據(jù)完全保存在內(nèi)存中,還可以通過磁盤實(shí)現(xiàn)數(shù)據(jù)的持久存儲(chǔ);Redis 支持豐富的數(shù)據(jù)類型,包括 string、list、set、zset、hash 等多種數(shù)據(jù)類型,因此它也被稱為“數(shù)據(jù)結(jié)構(gòu)服務(wù)器”;Redis 支持主從同步,即 master-slave 主從復(fù)制模式。數(shù)據(jù)可以從主服務(wù)器向任意數(shù)量的從服務(wù)器上同步,有效地保證數(shù)據(jù)的安全性;Redis 支持多種編程語言,包括 C、C++、Python、Java、PHP、Ruby、Lua 等語言。
Redis 6.0版本前一直是單線程方式處理用戶的請求;
單線程為何如此快?
純內(nèi)存
非阻塞
避免線程切換和競態(tài)消耗
Redis 沒有提供新建數(shù)據(jù)庫的操作,因?yàn)樗詭Я?16 (0—15)個(gè)數(shù)據(jù)庫(默認(rèn)使用 0 庫)。在同一個(gè)庫中,key 是唯一存在的、不允許重復(fù)的,它就像一把“密鑰”,只能打開一把“鎖”。鍵值存儲(chǔ)的本質(zhì)就是使用 key 來標(biāo)識(shí) value,當(dāng)想要檢索 value 時(shí),必須使用與 value 相對應(yīng)的 key 進(jìn)行查找。
3、redis 對比 memcached
memcached | redis | |
---|---|---|
類型 | key-value | key-value |
過期策略 | 支持 | 支持 |
數(shù)據(jù)類型 | 單一數(shù)據(jù)類型 | 五大數(shù)據(jù)類型 |
持久化 | 不支持 | 支持 |
主從復(fù)制 | 不支持 | 支持 |
虛擬內(nèi)存 | 不支持 | 支持 |
4、redis 典型應(yīng)用場景:
Session 共享:常見于web集群中的Tomcat或者PHP中多web服務(wù)器session共享;
緩存:數(shù)據(jù)查詢、電商網(wǎng)站商品信息、新聞內(nèi)容;
計(jì)數(shù)器:訪問排行榜、商品瀏覽數(shù)等和次數(shù)相關(guān)的數(shù)值統(tǒng)計(jì)場景;
微博/微信社交場合:共同好友,粉絲數(shù),關(guān)注,點(diǎn)贊評論等;
消息隊(duì)列:ELK的日志緩存、部分業(yè)務(wù)的訂閱發(fā)布系統(tǒng);
地理位置: 基于GEO(地理信息定位),實(shí)現(xiàn)搖一搖,附近的人,外賣等功能;
5、Redis下載與安裝:
注意:Windows 系統(tǒng)可以下載安裝非官方的 Redis 版本,不過其使用性能遠(yuǎn)不如 Linux 系統(tǒng)。
這里我們在centos7上部署安裝Redis 5.0.7版本:
rpm源碼包下載地址:wget https://download.redis.io/releases/redis-5.0.7.tar.gz
#關(guān)閉防火墻和SELinux systemctl stop firewalld setenforce 0 #安裝依賴包 yum install -y gcc gcc-c++ make #下載軟件包 cd /opt wget https://download.redis.io/releases/redis-5.0.7.tar.gz tar zxf redis-5.0.7.tar.gz cd redis-5.0.7/ make make PREFIX=/usr/local/redis install
#由于Redis源碼包中直接提供了Makefile 文件,所以在解壓完軟件包后,不用先執(zhí)行./configure進(jìn)行配置,可直接執(zhí)行make與make install 命令進(jìn)行安裝。
cd /opt/redis-5.0.7/utils ./install_server.sh #。。。。一直回車到這一步 #需要手動(dòng)修改為可執(zhí)行文件路徑,注意要一次性正確輸入 Please select the redis executable path [] /usr/local/redis/bin/redis-server
把redis的可執(zhí)行程序文件放入路徑環(huán)境變量的目錄中便于系統(tǒng)識(shí)別;
ln -s /usr/local/redis/bin/* /usr/local/bin/ #當(dāng)install_server.sh 腳本運(yùn)行完畢,Redis 服務(wù)就已經(jīng)啟動(dòng),默認(rèn)偵聽端口為6379 ss -natp | grep 6379
Redis服務(wù)控制:
/etc/init.d/redis_6379 stop #停止 /etc/init.d/redis_6379 start #啟動(dòng) /etc/init.d/redis_6379 restart #重啟 /etc/init.d/redis_6379 status #查看狀態(tài)
#修改配置/etc/redis/6379.conf 參數(shù) #70行,添加,監(jiān)聽的主機(jī)地址 vim /etc/redis/6379.conf bind 127.0.0.1 192.168.111.100 #修改配置后要重啟Redis /etc/init.d/redis_6379 restart
Redis 命令工具:
redis-server | 用于啟動(dòng) Redis的工具 |
---|---|
redis-benchmark | 用于檢測Redis在本機(jī)的運(yùn)行效率 |
redis-check-aof | 修復(fù)AoF持久化文件 |
redis-check-rdb | 修復(fù)RDB持久化文件 |
redis-cli | Redis 命令行工具 |
redis-benchmark 測試工具
語法: redis-benchmark [選項(xiàng)] [選項(xiàng)值]
-h :指定服務(wù)器主機(jī)名。
-P :指定服務(wù)器端口。
-s :指定服務(wù)器socket
-c :指定并發(fā)連接數(shù)。
-n :指定請求數(shù)。
-d :以字節(jié)的形式指定SET/GET值的數(shù)據(jù)大小。
-k : 1=keep alive 0=reconnect 。
-r : SET/GET/INCR 使用隨機(jī)key, SADD 使用隨機(jī)值。
-P :通過管道傳輸請求。
-q :強(qiáng)制退出redis。 僅顯示query/sec值。
–csv :以 CSV 格式輸出。
-l :生成循環(huán),永久執(zhí)行測試。
-t :僅運(yùn)行以逗號分隔的測試命令列表。,
-I :Idle 模式。僅打開 N 個(gè) idle 連接并等待。
#向IP地址為192.168.111.100、 端口為6379的Redis 服務(wù)器發(fā)送100 個(gè)并發(fā)連接與100000 個(gè)請求測試性能 redis-benchmark -h 192.168.111.100 -P 6379 -c 100 -n 100000 #測試存取大小為100字節(jié)的數(shù)據(jù)包的性能 redis-benchmark -h 192.168.111.100 -P 6379 -q -d 100 #測試本機(jī)上 Redis 服務(wù)在進(jìn)行 set 與lpush 操作時(shí)的性能 redis-benchmark -t set,lpush -n 100000 -q
redis-cli 命令行工具:
---redis-cli 命令行工具------ redis-cli -h 192.168.111.100 -p 6379 -a 123123 -n 數(shù)據(jù)庫序號(0-15) -h:指定遠(yuǎn)程主機(jī)地址 -p:指定redis服務(wù)端口 -a:指定密碼,未設(shè)置數(shù)據(jù)庫密碼可以省略-a選項(xiàng) -n:指定數(shù)據(jù)庫序號,默認(rèn)是序號0,redis有16個(gè)庫(0-15) 若不添加任何選型表示,則使用127.0.0.1:6379 連接本機(jī)上的redis 數(shù)據(jù)庫
到此這篇關(guān)于關(guān)于Redis數(shù)據(jù)庫入門詳細(xì)介紹的文章就介紹到這了,更多相關(guān)Redis數(shù)據(jù)庫內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。