分布式 redis安裝

2021-10-10 04:20:54 字數 2497 閱讀 3702

yum install gcc

cd /usr/local

wget

tar xzf redis-5.0.3.tar.gz

cd redis-5.0.3

make
src/redis-server redis.conf(注意要使用後台啟動,所以修改redis.conf裡的daemonize改為yes)

#關閉保護模式,開啟的話,只有本機才可以訪問redis

protected-mode no

這個預設開啟,但是如果不滿足三個條件的話,你寫yes它也是關閉的

1 protected-mode yes (處於開啟)

2 redis沒有設定密碼(設定密碼則預設關閉)

3 redis 伺服器沒有使用「bind」指令顯式繫結到一組位址。(使用了bing ***.***.***也是預設關閉)

# 需要注釋掉bind

//bind繫結的是自己機器網絡卡的ip,如果有多塊網絡卡可以配多個ip,

代表允許其他客戶端通過機器的指定網絡卡ip去訪問,內網一般可以不配置bind,(內部網路)

對外訪問可以bind個指定的本機網絡卡,可以通過這個指定的ip進行訪問,

比如你bind了 bind 192.168.3.60

之前的redis-cli就不能使用了(預設127.0.0.1),必須使用redis-cli -h 192.168.8.60 才能訪問

注釋掉即可,(不然搭建集群的時候,每個bind都得寫自己本機ip)這裡搭配不好會影響集群之間互相呼叫

#bind 127.0.0.1

ps -ef | grep redis
src/redis-cli
quit
(1)pkill redis-server 

(2)kill 程序號

(3)src/redis-cli shutdown

redis 的單執行緒主要是指 redis 的網路 io 和鍵值對讀寫是由乙個執行緒來完成的(執行命令是單個執行緒抓取佇列執行的),這也是 redis 對外提供鍵值儲存服務的主要流程。但 redis 的其他功能,比如持久化、非同步刪除、集群資料同步、過期時間等,其實是由額外的執行緒執行的。(redis6的多執行緒部分只是用來處理網路資料的讀寫和協議解析,執行命令仍然是單執行緒順序執行)

因為它所有的資料都在記憶體中,所有的運算都是記憶體級別的運算,而且單執行緒避免了多執行緒的切換效能損耗問題。正因為 redis 是單執行緒,所以要小心使用 redis 指令,對於那些耗時的指令(比如keys),一定要謹慎使用,一不小心就可能會導致 redis 卡頓。

redis的io多路復用:redis利用epoll來實現io多路復用,將連線資訊和事件放到佇列中,依次放到檔案事件分派器,事件分派器將事件分發給事件處理器。(後續文章會詳細說明)

scan cursor [match pattern] [count count]
scan 引數提供了三個引數,第乙個是 cursor 整數值(hash桶的索引值),第二個是 key 的正則模式,第三個是一次遍歷的key的數量(參考值,底層遍歷的數量不一定),並不是符合條件的結果數量。第一次遍歷時,cursor 值為 0,然後將返回結果中第乙個整數值作為下一次遍歷的 cursor。一直遍歷到返回的 cursor 值為 0 時結束。

注意:但是scan並非完美無瑕, 如果在scan的過程中如果有鍵的變化(增加、 刪除、 修改) ,那麼遍歷效果可能會碰到如下問題: 新增的鍵可能沒有遍歷到, 遍歷出了重複的鍵等情況, 也就是說scan並不能保證完整的遍歷出來所有的鍵, 這些是我們在開發時需要考慮的。

server 伺服器執行的環境引數 

clients 客戶端相關資訊

memory 伺服器執行記憶體統計資料

persistence 持久化資訊

stats 通用統計資料

replication 主從複製相關資訊

cpu cpu 使用情況

cluster 集群資訊

keyspace 鍵值對統計數量資訊

redis的info詳

Redis安裝 偽分布式集群安裝

1.mkdir usr local redis 2.cd usr local src 3.tar xzvf redis 4.0.8.tar.gz 4.ln s redis 4.0.8 redis 建立乙個連線 5.cd redis 6.關鍵 make prefix usr local redis i...

redis分布式鎖

redis分布式鎖 直接上 我寫了四個redis分布式鎖的方法,大家可以提個意見 第一種方法 redis分布式鎖 param timeout public void lock long timeout thread.sleep 100 catch exception e override publi...

Redis分布式鎖

分布式鎖一般有三種實現方式 1.資料庫樂觀鎖 2.基於redis的分布式鎖 3.基於zookeeper的分布式鎖.首先,為了確保分布式鎖可用,我們至少要確保鎖的實現同時滿足以下四個條件 互斥性。在任意時刻,只有乙個客戶端能持有鎖。不會發生死鎖。即使有乙個客戶端在持有鎖的期間崩潰而沒有主動解鎖,也能保...