1 NoSQL是什么
1.1 NoSQL數據庫概述
NoSQL(NoSQL = Not Only SQL ),意即”不僅僅是SQL“,泛指非關系型的數據庫。
NoSQL 不依賴業務邏輯方式存儲,而以簡單的key-value模式存儲。因此大大的增加了數據庫的擴展能力。
- 不遵循SQL標準。
- 不支持ACID
- 遠超于SQL的性能。
- 數據無關聯
- 儲存在內存當中
1.2 NoSQL適用場景
- 對數據高并發的讀寫
- 海量數據的讀寫
- 對數據高可擴展性的
1.3 NoSQL不適用場景
- 需要事務支持
- 基于sql的結構化查詢存儲,處理復雜的關系,需要即席查詢
- 用不著sql的和用了sql也不行的情況,請考慮用NoSql
1.4 常見的非關系型數據庫
- Redis(數據都在內存中,支持持久化,主要用作備份恢復除了支持簡單的key-value模式,還支持多種數據結構的存儲,比如 list、set、hash、zset等。一般是作為緩存數據庫輔助持久化的數據庫)
- MongoDB(高性能、開源、模式自由(schema free)的文檔型數據庫數據都在內存中, 如果內存不足,把不常用的數據保存到硬盤雖然是key-value模式,但是對value(尤其是json)提供了豐富的查詢功能支持二進制數據及大型對象可以根據數據的特點替代RDBMS,成為獨立的數據庫。或者配合RDBMS,存儲特定的數據)
1.5 NoSQL的數據結構
- 鍵值類型(redis)
- 文檔類型(MongoDB)
- 列類型(HBase)
- Graph類型(Neo4j)
2 初識Redis
redis概述
Redis誕生于2009年全稱是Remote Dictionary Server,遠程詞典服務器,是一個基于內存的鍵值型NOSQL數據庫
特征:
- 鍵值 (key-value)型,value支持多種不同數據結構,功能豐富、
- 單線程,每個命令具備原子性
- 低延遲,速度快(基于內存、I0多路復用、良好的編碼)。
- 支持數據持久化(Redis會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件。)
- 支持主從集群、分片集群
- 支持多語言客戶端
3 Redis安裝
Redis官方網站 | Redis官方網站 |
---|---|
http://redis.io | http://redis.cn/ |
安裝版本
6.2.1 for Linux(redis-6.2.1.tar.gz)
安裝步驟
- 準備工作:下載安裝最新版的gcc編譯器
- 安裝C 語言的編譯環境 :yum -y install gcc
- 測試 gcc版本 :gcc --version
- 下載redis-6.2.1.tar.gz放/opt目錄
- 解壓:tar -zxvf redis-6.2.1.tar.gz
- cd redis-6.2.1
- 執行make(只是編譯好)
- 如果沒有準備好C語言編譯環境,make 會報錯—Jemalloc/jemalloc.h:沒有那個文件
解決方案:安裝gcc后,運行make distclean,然后再進行make
-
在redis-6.2.1目錄下再次執行make命令(只是編譯好)
-
跳過make test 繼續執行: make install
安裝目錄
查看默認安裝目錄:/usr/local/bin
redis-benchmark:性能測試工具,可以在自己本子運行,看看自己本子性能如何
redis-check-aof:修復有問題的AOF文件
redis-check-dump:修復有問題的dump.rdb文件
redis-sentinel:Redis集群使用
redis-server:Redis服務器啟動命令
redis-cli:客戶端,操作入口
前臺啟動(不推薦)
前臺啟動,命令行窗口不能關閉,否則服務器停止
會阻塞整個會話窗口,窗口關閉或者按下CTRL + C 則Reis停止。不推薦使用。
后臺啟動(推薦)
-
備份redis.conf
- 在/root目錄下創建myredis目錄
- mkdir myredis
- 拷貝一份redis.conf到myredis目錄
- cp /opt/redis-6.2.1/redis.conf /root/myredis
-
修改配置
- daemonize no改成yes(L247)讓服務在后臺啟動(通過\搜索你要修改的配置)
-
Redis啟動
- redis-server redis.conf
-
通過該命令ps -ef|grep redis,查看redis是否在后臺運行
-
Redis關閉
-
單實例關閉:redis-cli shutdown
-
也可以進入終端后關閉當前實例
-
多實例時關閉指定實例,指定端口關閉:redis-cli -p 6379 shutdown
-
redis開機自啟動
我們也可以通過配置來實現開機自啟。
首先,新建一個系統服務文件:
vi /etc/systemd/system/redis.service
內容如下:
[Unit]
Description=redis-server
After=network.target[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /opt/redis-6.2.1/redis.conf
#這里寫你自己的文件配置的目錄
PrivateTmp=true[Install]
WantedBy=multi-user.target
然后重載系統服務
systemctl daemon-reload
現在我們可以用下面的命名來操作redis
#啟動
systemctl start redis
#停止
systemctl stop redis
#重啟
systemctl restart redis
查看狀態
systemctl status redis
執行下面的命令,可以讓redis開機自啟
systemctl enable redis
redis命名行客戶端
Redis安裝完成后就自帶了命令行客戶端: redis-cli,使用方式如下:
redis-cli [option] [commonds]
其中常見的options有:
-h 127.0.0.1
:指定連接的redis節點的ip地址,默認127.0.0.1-p 6379
:指定要連接的redis節點的端口,默認是6379-a 123321
:指定redis的訪問密碼
其中的commonds就是Redis的操作命令,例如:
ping
:與redis服務端做心跳測試,服務端正常會返回pong
不指定commond時,會進入redis-cli
的交互控制臺:
可以登錄后連接
圖形化桌面客戶端
我這邊使用 Another Redis Desktop Manager
GitHub上的大神編寫了Redis的圖形化桌面客戶端,地址: https://github.com/uglide/RedisDesktopManager
不過該倉庫提供的是RedisDesktopManager的源碼,并未提供windows安裝包。
在下面這個倉庫可以找到安裝包: https://github.com/lework/RedisDesktopManager-Windows/releases