您好,登錄后才能下訂單哦!
這篇文章主要講解了“Redis的概念及搭建方法”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Redis的概念及搭建方法”吧!
Redis 簡介
什么是 Redis
Redis 的全稱是 Remote Dictionary Server,它是一款 開源的 高性能的 NoSQL 數據庫,它可以用作 數據庫、緩存 和 消息隊列。
什么是 NoSQL
NoSQL 最常見的解釋是 naon-relational,非關系型數據庫,還有一種說法是 Not Only SQL,不僅僅是 SQL,NoSQL 僅僅是一個概念,泛指非關系型的數據庫,區別于關系數據庫,它們不保證關系數據的 ACID 特性。ACID 即
A (Atomicity) 原子性
C (Consistency) 一致性
I (Isolation) 獨立性
D (Durability) 持久性
Redis 通過提供多種鍵值對的數據類型來適應不同場景下的存儲需求。
NoSQL 的代表
作為 NoSQL 的代表主要有
Redis
Memcached
NoSQL 的優點
Redis 相較于關系型數據庫模型,它還是具有很多優點的
易擴展
NoSQL 數據庫種類繁多,但是一個共同的特點就是去掉關系數據庫的關系型特性,數據之間無關系,這樣就非常容易擴展。
大數據量,高性能
NoSQL 數據庫都具有非常高的讀寫性能,尤其在大數據量下,同樣表現很優秀。
靈活的數據模型
NoSQL 無需事先建立字段,這省去了關系型數據庫一旦建立字段,可擴展性非常差的不利局面。NoSQL 隨時可以存儲自定義的數據格式。
高可用
NoSQL 在不太影響性能的情況,就可以方便地實現高可用的架構。比如 Cassandra、HBase 模型,通過復制模型也能實現高可用。
Redis 數據類型
Redis 支持的數據類型主要有五種,它們分別是
字符串 - strings
string 字符串 是 Redis 中最簡單的數據類型,它是與 Memcached 一樣的類型,一個 key 對應一個 value,這種 key/value 對應的方式稱為鍵值對。字符串對很多例子都有用,例如緩存 HTML 片段和網頁。
集合 - set
set 是集合,和我們數學中的集合概念相似,對集合的操作有添加刪除元素,有對多個集合求交并差等操作。操作中 key 理解為集合的名字。
散列 - hash
hash 是一個鍵值 (key=>value) 對集合;是一個 string 類型的 field 和 value 的映射表,hash 特別適合用于存儲對象。
列表 - list
Redis 列表是簡單的字符串列表,按照插入順序排序。你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)。list類型經常會被用于消息隊列的服務,以完成多程序之間的消息交換。
有序集合 - zset
Redis zset 和 set 一樣也是 string 類型元素的集合,且不允許重復的成員。當你需要一個有序的并且不重復的集合列表時,那么可以選擇 sorted set 數據結構。
Redis 安裝
Redis 支持在 Linux、OS X 、BSD 等 POSIX 系統中安裝,也支持在 Windows 中安裝,在 Windows 、Linux 下的安裝請參考 https://www.runoob.com/redis/redis-install.html
我自己的電腦是 mac 系統,mac 系統的安裝過程是 https://www.jianshu.com/p/bb7c19c5fc47
如果你用的是 Homebrew,它的安裝過程是 https://www.jianshu.com/p/e1e5717049e8
Redis 啟動
安裝完成 Redis 后,我們需要啟動 Redis,不過我們在啟動 Redis 之前,需要先了解一下 Redis 的可執行文件,如果你是下載的 tar.gz 安裝包,可以使用 make install 進行編譯,編譯完成后會在 /usr/local/bin 目錄生成下面這幾個可執行文件
下面我們來一起認識一下這些可執行文件的作用
redis-benchmark 是 Redis 性能測試工具,可以使用 redis-benchmark 進行基準測試,比如redis-benchmark -q -n 100000 ,這個工具使用起來非常方便,同時你可以使用自己的基準測試工具
redis-check-rdb RDB 文件檢查工具,rdb 是 Redis 的一種持久化方式
redis-check-aof AOF 文件檢查工具,aof 也是 Redis 的一種持久化方式,關于這兩種持久化方式我們后面會說
redis-sentinel redis-sentinel 就是一個獨立運行的進程,用于監控多個 master-slave 集群, 自動發現 master 宕機,進行自動切換 slave > master。
redis-cli,redis-cli 和 后面的 redis-server 都是常用的而且比較重要的命令,是你登錄 redis 的指令
redis-server,redis-server 是 redis 的后臺服務器
Redis 啟動分為兩種,一種是直接運行 redis-server,一種是通過 redis 腳本啟動,前者一般用于開發環境,腳本啟動一般用于生產環境,這里我們直接使用直接啟動的方式。
直接運行 redis-server 即可啟動 redis
也可以通過指定 Redis 的端口來運行 Redis
redis-server --port 6380
這里我們就不貼出圖了。
Redis 停止
考慮到 Redis 有可能正在將內存中的數據同步到硬盤中,強制執行 Redis 的停止命令可能導致數據丟失。正確停止 Redis 的方式應該是向 Redis 發送 SHUTDOWN 命令,如下
redis-cli SHUTDOWN
這里你可能還不清楚 redis-cli 是什么指令,我們下面會說。
當 Redis 收到 SHUTDOWN 指令后,會先斷開所有客戶端連接,然后根據配置執行持久化,最后完成退出。
也可以使用 kill Redis 端口 來正常結束 Redis ,效果與 SHUTDOWN 命令一樣。
Redis 命令行客戶端
下面我們來說一下 redis-cli 指令,redis-cli 和 redis-server 都是 Redis 中非常重要的工具,你一定要知道,redis-cli 的全稱是 Redis Command Line Interface,是 Redis 自帶的命令行工具,它主要有下面這幾種用法
發送命令
通過 redis-cli 向 Redis 發送命令的方式有兩種,一種是將命令作為 redis-cli 的參數執行,比如上面的 redis-cli SHUTDOWN 命令,redis-cli 在執行時會按照默認的主機和端口號來進行連接,默認的主機和端口號分別是 127.0.0.1 和 6379 連接 Redis
也可以通過 -h 和 -p 參數自定義地址和端口號
redis-cli -h 127.0.0.1 -p 6379
Redis 提供了 PING 命令來測試客戶端與 Redis 的連接是否正常,如果正常會回復到 PONG 響應,如下
redis-cli PING
命令返回值
在大多數情況下,執行一條命令后我們會希望獲得命令的返回值,在 Redis 中,Redis 的命令返回值主要有 5 種類型,對于每種類型 redis-cli 的展現結果都不同,下面分別進行說明
狀態回復
狀態回復(status reply)是一種最簡單的回復,比如向 Redis 發送 SET 命令設置某個鍵的值時,Redis 會回復 OK 表示設置成功。我們上面說到的 PING 和 PONG 也是一種狀態回復。狀態回復會直接顯示狀態信息。
錯誤回復
錯誤回復(error reply)指的是,當出現命令不存在或者命令有錯誤時,會出現錯誤回復,并在后面跟上錯誤信息。比如執行一個不存在的指令
整數回復
Redis 雖然沒有整數類型,但是卻提供了一些用于整數操作的指令,如遞增鍵值的 INCR命令會以整數形式返回遞增后的鍵值。除此之外,一些其他的命令也會返回整數。整數回復(integer reply) 以 integer 為開頭然后在后面跟上整型數據
字符串回復
字符串回復(bulk reply) 是最常見的一種回復類型,當請求一個字符串類型的鍵的鍵值或一個其他類型鍵中的某個元素時就會得到一個字符串回復。字符串回復以雙引號包裹
還有一種情況時這個請求的鍵值不存在時會返回 nli,表示返回的是一個空結果。
多行字符串回復
多行字符串回復(multi-bulk reply) 同樣很常見,如當請求一個非字符串類型的鍵的元素列表時就會收到多行字符串回復
Redis 配置
redis 可以支持自定義配置,比如是否開啟持久化、配置日志級別等。由于可配置的選項比較多,通過啟動來配置這些選項并不合理,因此可以通過程序員手動配置。啟用配置文件的方法是在啟動時將配置文件的路徑作為啟動參數傳遞給 redis-server,如下
redis-server /路徑/redis.conf
通過參數傳遞同名的配置選項會覆配置文件中相應的參數,如下
redis-server /路徑/redis.conf --loglevel warning
Redis 提供了一個配置文件的模版 redis.conf,Redis 也支持動態修改配置,可以使用 CONFIG SET 命令在不重新 Redis 的情況下動態修改 Redis
CONFIG SET loglevel warning
Redis 多數據庫切換
Redis 是一個字典結構的存儲服務器,實際上一個 Redis 實例提供了多個用來存儲數據的字典,客戶端可以指定將數據存放在哪個字典中。
每個數據庫對外都是以一個從 0 開始的遞增數字命名,Redis 默認支持 16 個數據庫,可以通過配置 databases 來修改這一數字。客戶端與 Redis 建立連接后會默認選擇 0 號數據庫,不過可以使用 select 命令切換數據庫。
select 1
這條指令就會選擇 1 號數據庫
感謝各位的閱讀,以上就是“Redis的概念及搭建方法”的內容了,經過本文的學習后,相信大家對Redis的概念及搭建方法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。