一、Redis簡介
Redis全稱為 Remote Dictionary Server(遠程詞典服務),開源(BSD許可)的,使用 C 語言開發的,
Redis是記憶體中的資料結構存盤系統,它可以用作資料庫、快取和訊息中間件,
支持多種型別的資料結構,如 字串(strings), 散列(hashes), 串列(lists), 集合(sets), 有序集合(sorted sets) 與范圍查詢, bitmaps, hyperloglogs 和 地理空間(geospatial) 索引半徑查詢,
內置了復制,LUA腳本,LRU驅動事件,事務和不同級別的磁盤持久化,并通過Redis哨兵和自動磁區提供高可用性,
1、Redis背景
Redis的開發作者是一名意大利的程式員,名字為Salvatore Sanfilippo(網名:antirez)
Salvatore 最初創建 Redis 是為了擴展實時日志分析工具LLOOGG ;早先LLOOGG是基于MySQL的,MySQL的資料是存在磁盤的,存在I/O性能瓶頸,這促使Salvatore撰寫一個記憶體型資料庫,
讓基本的 Redis 服務器運行之后,他決定與其他人分享這項作業,在2009年將Redis正式開源,
2、Redis特性
-
速度快、性能高
- 基于記憶體
- 命令執行單執行緒,避免了不必要的背景關系切換及競爭條件
- key-value 存盤,底層資料結構加持
- IO多路復用
- 多執行緒 IO 模型
- 支持 Pipelining 命令,可一次發送多條命令來提高吞吐率,減少通信延遲
-
原子操作
-
豐富的資料結構,針對value的
- String(字串)
- List(鏈表)
- Set(集合)
- Zset(sorted set --有序集合)
- Hash(哈希型別)
- Bitmaps:一般用于大資料量的二值性統計,比如簽到、打卡
- HyperLogLog:用于對資料量超級龐大的日志做去重統計
- Geospatial:地理空間,其主要用于地理位置相關的計算
- Stream:可實作簡單的訊息中間件的功能(publish/subscribe)
-
提供了眾多個性化功能
- 慢查詢分析
- 性能測驗
- Pipeline
- 簡單事務
- Lua腳本擴展
- 發布/訂閱
-
持久化
-
主從復制
-
高可用、分布式集群
-
客戶端語言廣泛
3、Redis網站
官方檔案:https://redis.io/
中文參考:
- https://www.redis.com.cn/
- http://www.redis.cn/
作者博客:http://antirez.com/latest/0
二、Redis安裝
前置環境:gcc編譯器
yum -y install gcc automake autoconf libtool make
官網步驟:https://redis.io/docs/getting-started/installation/
下載地址:https://redis.io/download/
Redis是C語言開發的,需要進行安裝,安裝方式在README.MD中即可找到!
wget https://download.redis.io/releases/redis-7.0.4.tar.gz
tar xzf redis-7.0.4.tar.gz
cd redis-7.0.4/
# 編譯,make會找本目錄下的MakeFile檔案,成功后src下會生成可執行檔案
make
# 安裝到指定目錄之后,可以看到對應的目錄下只有執行檔案,就不和原始碼混在一起
make install PREFIX=/opt/redis7
Redis編譯安裝完成之后,會生成幾個可執行檔案,分別具有不同的作用,我們現在先簡單了解下,之后我們陸續會進行介紹!
Redis編譯安裝完成之后,我們還可以對其配置一個環境變數,以后啟動Redis就會變得較為方便一些!
# 配置環境變數
vi /etc/profile
export REDIS_HOME=/opt/redis7
export PATH=$PATH:$REDIS_HOME/bin
# 重繪環境變數
source /etc/profile
#查看環境變數
echo $PATH
Redis官方并沒有提供支持Windows環境下的安裝包,生產環境下基本也都是Linux服務器為主!
官方雖然沒有提供Windows版本的Redis,但是有一些愛搞事情的開發者對其做了維護!
Windows環境下安裝:https://github.com/zkteco-home/redis-windows
三、啟動服務
1、默認前臺啟動
在任意目錄執行 redis-server
命令即可啟動 Redis,但是這種啟動方式會阻塞當前命令列視窗!
再開一個視窗查看Redis行程:ps -ef | grep redis
通過 Ctrl + C
可以停止 Redis!
2、命令式后臺啟動
使用 nohub 命令,末尾再添加一個&符,可以使要啟動的程式在后臺以守護行程方式運行,
這樣的好處是,行程啟動后不會占用一個會話視窗,且其還會在當前目錄,即運行啟動命令的當前目錄中創建一個 nohup.out 檔案用于記錄 Redis 的操作日志,
停止Redis服務
redis-cli shutdown
3、配置式后臺啟動
1)修改Redis編譯安裝目錄下的redis.conf組態檔,最好先復制一份!
2)修改配置
3)啟動Redis
4、配置Linux服務啟動
我們還可以將Redis配置成一個對應的服務,只需要執行Redis原始碼目錄下的utils下 install_server.sh
腳本即可!
如果執行的時候有報如下的錯誤:
這時候我們只需要將腳本檔案打開,將里面報錯的文本內容注釋掉即可!
這時候我們再次執行 install_server.sh
腳本,即可看到以下的界面:
這里我們先選擇默認埠,也可以自己進行埠配置!
一個物理機可以有多個Redis行程,通過埠號進行區分!
可執行程式就一份,但記憶體中如果存在多個實體需要有各自的組態檔、持久化目錄等資源
查看服務狀態:service redis_6379 status
關閉/啟動Redis服務:service redis_6379 stop/start
查看Redis行程:ps -ef | grep redis
四、Redis客戶端
1、本地命令列工具訪問
本地命令列客戶端的工具為 redis-cli
基本格式:redis-cli -h (host}-p {port}
- -h:指定要連接的 Redis 服務器的 IP
- -p:指定要連接的 Redis 的埠號
若連接的是本機 Redis,且埠號沒有改變,保持默認的 6379,則-h 與-p 選項可以省略掉!
#在這種狀態下,會把get獲取的16進制xshell的編碼顯示;比如顯示“中”,而不是16進制
redis-cli --raw
設定密碼
Redis可以設定訪問密碼,可以對用戶進行身份驗證,沒有密碼的用戶可以登錄 Redis,但無法訪問!
訪問密碼的設定位置在 redis.conf 組態檔中,默認是被注釋掉的,沒有密碼,
沒有進行密碼驗證的用戶,無法對Redis進行讀、寫!
對于密碼的使用,有兩種方式:
- 登錄時未使用密碼,則訪問時先輸入密碼;
- 登錄時直接使用密碼登錄,訪問時無需再輸入密碼!
2、遠程圖形化工具訪問
- Redis Desktop Manager:https://resp.app/(原來是 http://redisdesktop.com)
- AnotherRedisDeskTopManager:https://gitee.com/qishibo/AnotherRedisDesktopManager/releases
- Redis Insight:https://redis.com/redis-enterprise/redis-insight/
- RedisPlus:https://gitee.com/MaxBill/RedisPlus
前置配置
遠程客戶端連接之前我們要針對做一些配置,使遠程主機上的客戶端能夠連接并訪問到服務端的 Redis,
- IP系結
還可以配置成bind 0.0.0.0 表示可以和所有的IP進行系結!
- 關閉保護模式
默認開啟保護模式,其只允許本機的客戶端訪問,但生產中應該關閉,以確保其它客戶端可以連接 Redis,
出處:https://www.cnblogs.com/hanyu-2020/
---------------------------------------------------------
個性簽名:獨學而無友,則孤陋而寡聞,做一個靈魂有趣的人!
如果覺得這篇文章對你有小小的幫助的話,記得在右下角點個“推薦”哦,博主在此感謝!
本文內容若有疏漏請多多包涵,如有錯誤麻煩請指正,如有想法交流非常歡迎在下方評論!
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/546262.html
標籤:其它
上一篇:通用表運算式