redis是網際網路技術領域使用最為廣泛的儲存中介軟體,它是remote dictionary service的首字母縮寫,也就是遠端字典服務,redis使用c語言實現。redis以其超高的效能、完美的文件、簡潔易懂的原始碼和豐富的客戶端庫支援在開源中介軟體領域廣受好評。redis包含以下特性:
(1)速度快
redis執行命令的速度非常快,官方給出的數字是讀寫效能可以達到10w/s,速度快的原因可以總結為以下幾點:
(2)簡單穩定
redis的原始碼簡潔,容易理解閱讀;
redis使用單執行緒模型,這樣不僅使得redis服務端處理模型變得簡單,而且也使得客戶端開發變得簡單;
redis不需要依賴於作業系統中的類庫,redis自己實現了事件處理的相關功能;
(3)客戶端語言多
redis提供了簡單的tcp通訊協議,很多程式語言可以很方便地接入到redis,支援redis的客戶端語言也非常多,幾乎涵蓋了主流的程式語言。
(4)持久化
將資料放在記憶體中是不安全的,為了避免因斷電或者機器故障導致重要的資料丟失,redis提供了兩種持久化方式:rdb和aof。
(5)主從複製
redis提供了複製功能,實現了多個相同資料的redis副本,複製功能是分布式redis的基礎。
(6)高可用和分布式
redis從2.8版本正式提供了高可用解決方案redis sentinel,它能夠保證redis節點的故障發現和故障自動轉移。redis從3.0版本正式提供了分布式實現redis cluster,它是redis的分布式實現,提供了高可用、讀寫和容量的擴充套件性。
1.redis安裝
redis遵循如下的標準版本編號實踐,即major:minor:patch(主版本號:次版本號:補丁版本號)的層級形式。偶數的主版本號代表穩定版,奇數的主版本號表示不穩定版,雖然redis也有少數幾個版本使用了奇數的主版本號。
採用docker部署redis,啟動redis後,進入redis容器,進入/usr/local/bin路徑,可以檢視到bin目錄中會有一些可執行檔案,稱之為redis shell,這些可執行檔案可以做很多事情,例如可以啟動和停止redis、可以檢測和修復redis的持久化檔案,還可以檢測redis的效能。
2.redis的啟動與連線
redis例項代表乙個redis-server程序,同一臺主機上可以執行多個redis例項,只要這些例項使用不同的配置即可,比如繫結到不同的埠、使用不同的路徑儲存資料持久化相關的檔案,或採用不同的日誌路徑等。有三種方法啟動redis:預設配置啟動、執行時配置啟動、配置檔案啟動。
(1)預設配置啟動
這種方法會使用redis的預設配置來啟動,無法自定義配置,這種方式不會在生產環境中使用。
(2)執行時配置啟動
在執行redis-server命令啟動redis的時候,加上要修改配置名和值(可以是多對),如果需要修改的配置較多或者希望將配置儲存到檔案中,不建議使用這種方式。
redis-server --configkey1 confi**alue1 --configkey2 confi**alue2
(3)配置檔案啟動
將配置寫到指定檔案裡,在啟動redis的時候,指定配置檔案的位址。redis目錄下都會有乙個redis.conf配置檔案,裡面就是redis的預設配置,可以將redis.conf作為模板進行修改。
redis-server /opt/redis/redis.conf
使用redis-cli連線redis服務端,如果不知道redis-cli的位置,可以使用如下命令查詢。
whereis redis-cli
redis-cli: /usr/local/bin/redis-cli
在redis-cli的安裝路徑連線redis的方式如下:
redis-cli -h 127.0.0.1 -p 6379
3.redis停止
建議使用shutdown命令停止redis服務,原因在於,我們關心資料一致性且配置了資料持久化來將記憶體中的資料儲存到磁碟中。那麼shutdown命令發出後,除了終結程序外,還會執行一系列的其他操作:
redis-server停止響應客戶端的連線;
如果啟用了持久化,則會執行資料持久化操作。
如果.pid檔案和socket套接字檔案描述符存在的話,則對其進行清理,並最終退出程序。
通過這種策略,redis會盡可能地防止資料丟失。相反,如果粗暴地使用kill命令來終止redis-server程序,那麼由於在服務端關閉之前資料可能尚未被持久化而導致資料丟失。
應該注意的是,使用kill命令或其他程序管理工具向redis程序傳送sigterm(15)訊號基本上等同於使用shutdown命令優雅地停止redis-server。
4.info命令
可以在redis-cli命令列中執行info命令來獲得乙個redis例項最全面和重要的資訊。info命令包括的如下內容:
也可以通過增加乙個可選的info 引數來指定要獲取哪一部分資訊,如通過info memory來獲得記憶體相關的指標。
Redis學習筆記1 Redis介紹
目錄 1 redis是什麼 2 redis的特點 3 redis 優勢 4 redis與其他key value儲存有什麼不同?附 什麼是bsd協議 附 什麼是原子性,什麼是原子性操作?redis是乙個開源的 高效能的 基於鍵值對的快取與儲存系統,通過提供多種鍵值資料型別來適應不同場景下的快取和儲存需...
Redis學習筆記(1) Redis安裝與其他
hdis framework是乙個基於springboot kubernetes 阿里雲服務,編寫的乙個用於支撐微服務的極速開發框架。其文件詳盡,demo全面,設計合理,開箱即用,節省開發時間,提公升開發效率。配套的docker kubernetes教程已踩過各種坑,讓你的微服務無障礙的順暢執行起來...
Redis筆記(1)redis的安裝與啟動
一 redis安裝 wget 2 解壓 tar zxvf redis 5.0.3.tar.gz 3 編譯安裝 編譯需要先安裝gcc yum install gcc c cd redis 5.0.3 make make完之後可以rdis預設安裝在src目錄下 4 安裝到指定目錄 二 redis啟動 將...