您好,登錄后才能下訂單哦!
小編給大家分享一下Redis怎么安裝部署,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
一、Redis是什么
Redis:REmote DIctionary Server(遠程字典服務器)
Redis是完全開源免費的,用C語言編寫的,遵守BSD協議的一個高性能的(key/value)分布式內存數據庫
,也是基于內存運行并支持持久化的NoSQL數據庫
,是當前最熱門的NoSql數據庫之一,也被人們稱為數據結構服務器。同時,Redis也是一個簡單的、高效的、分布式的、基于內存的緩存工具
。架構好服務器后,通過網絡連接(類似數據庫),提供Key-Value式緩存服務。
Redis有以下幾個優勢:
1.性能極高
Redis讀的速度是11萬次/s,寫的速度是8萬次/秒。
2.豐富的數據類型
Redis支持的類型有String、Hash、List、Set以及Ordered Set數據庫類型。
3.原子性
Redis所有操作都是原子性的,通過MULTI和EXEC指令包起來。
4.豐富的讀寫
Redis支持publish/subscribe、通知、key過期等特性。
5.高速讀寫
redis使用自己實現的分離器,代碼量很短,沒有使用lock(MySQL),因此效率非常高。
Redis也有以下幾個劣勢:
1.持久化
Redis直接將數據存儲在內存中,如果要將數據保存到磁盤上,第一種方法是使用①定時快照(snapshot)
:每隔一段時間將整個數據庫寫到磁盤上,每次均是寫全部數據,但是代價非常高;第二種方法是②基于語句追加(aof)
:只追蹤變化的數據,但是追加的log可能過大,同時所有的操作均重新執行一遍,恢復速度慢。
2.耗內存
,占用內存過高。
二、Redis能干什么
企業開發中,可以將Redis作為數據庫、緩存、熱點數據(經常被查詢但是不被修改和刪除的數據)、消息中間件等大部分功能。
Redis的常用場景實例如下:
緩存
如今緩存幾乎是所有中大型網站都在用的必殺技,合理的利用緩存不僅能夠提升網站的訪問速度,還能大大降低數據庫的壓力。Redis提供了鍵過期的功能,也提供了靈活的鍵淘汰策略。
排行榜
如淘寶的月度銷量榜單、商品按時間的上新排行榜等。Redis提供的有序集合數據類構能實現各種復雜的排行榜應用。
計數器
如電商網站商品的瀏覽量、視頻網站視頻的播放數等。為了保證數據實時效,每次瀏覽都得給+1,并發量高時如果每次都請求數據庫操作無疑是種挑戰和壓力。Redis提供的incr命令來實現計數器功能,內存操作,性能非常好,非常適用于這些計數場景。
分布式會話
集群模式下,在應用不多的情況下一般使用容器自帶的session復制功能就能滿足,在應用增多相對復雜的系統中,一般都會搭建以Redis等內存數據庫為中心的session服務,session不再由容器管理,而是由session服務及內存數據庫管理。
分布式鎖
分布式技術帶來的技術挑戰是對同一個資源的并發訪問,如全局ID、減庫存、秒殺等場景,并發量不大的場景可以使用數據庫的悲觀鎖、樂觀鎖來實現,但在并發量高的場合中,利用數據庫鎖來控制資源的并發訪問是不太理想的,大大影響了數據庫的性能。可以利用Redis的setnx功能來編寫分布式的鎖,如果設置返回1說明獲取鎖成功,否則獲取鎖失敗,實際應用中要考慮的細節要更多。
社交網絡
點贊、踩、關注/被關注、共同好友等是社交網站的基本功能,社交網站的訪問量通常來說比較大,而且傳統的關系數據庫類型不適合存儲這種類型的數據,Redis提供的哈希、集合等數據結構能很方便的的實現這些功能。
最新列表
Redis列表結構,LPUSH可以在列表頭部插入一個內容ID作為關鍵字,LTRIM可用來限制列表的數量,這樣列表永遠為N個ID,無需查詢最新的列表,直接根據ID去到對應的內容頁即可。
消息系統
消息隊列是大型網站必用中間件,如ActiveMQ、RabbitMQ、Kafka等流行的消息隊列中間件,主要用于業務解耦、流量削峰及異步處理實時性低的業務。Redis提供了發布/訂閱及阻塞隊列功能,能實現一個簡單的消息隊列系統。但是,這個不能和專業的消息中間件相比。
三、Redis下載與安裝部署
由于企業里面做Redis開發,99%都是Linux版的運用和安裝,所以本文僅介紹Linux下的安裝與運行,Windows下的安裝使用小伙伴們可以自行百度。前往上面的官網點擊Download下載.gz
安裝包后,放在Linux下的/opt
目錄 (我這里安裝的是Redis的6.0.5版本)。
解壓命令為:tar -zxvf redis-6.0.5.tar.gz
上述命令只是解壓了Redis,如果想要安裝Redis,需要Linux系統有gcc環境,如果沒有可以使用
yum install gcc-c++
安裝,然后使用gcc -v
查看版本。
如果Linux環境已經有了gcc環境,直接使用下面的命令進行安裝:
安裝命令為:make install
安裝好默認是像Tomcat那樣不能開機自啟的,可以修改 redis.conf 文件中的 daemonize 屬性為yes。
開啟redis服務:redis-server /myredis/redis.conf
(此處為修改屬性后的redis配置文件)
查看后臺Redis服務是否啟動:
ps -ef|grep redis
開啟Redis服務:
redis-cli -p 6379
正常關閉,數據會進行保存
在redis命令行中使用shutdown
命令關閉。
非正常關閉,易導致數據丟失
斷電、手動kill掉redis進程等。
幾個其他的redis命令
四、Redis的幾個小知識
Redis是一個單進程,使用單進程模型來處理客戶端的請求。對讀寫等事件的響應是通過對epoll函數的包裝來做到的。Redis的實際處理速度完全依靠主進程的執行效率。
epoll是Linux內核為處理大批量文件描述符而作了改進的epoll,是Linux下多路復用IO接口select/poll的增強版本,它能顯著提高程序在大量并發連接中只有少量活躍的情況下的系統CPU利用率。
Redis默認有16個數據庫,下標從零開始,初始默認使用零號庫,可以使用SELECT <dbid>
命令連接上指定數據庫。
dbsize
指令可以查看當前數據庫的key的數量,keys *
查看所有的key。
flushdb
:清空當前庫(慎用)
Flushall
:清空全部庫(慎用)
統一密碼管理,16個庫都是同樣密碼,要么都OK要么一個也連接不上。
Redis索引都是從零開始
Redis默認端口是6379
以上是“Redis怎么安裝部署”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。