擴容腳本
❶ redis內存滿了怎麼辦
redis內存滿了解決方法:
1,增加內存。
2,使用內存淘汰策略。
3,Redis集群。
重點介紹下2、3:
第二點:
我們知道,redis設置配置文件的maxmemory參數,可以控制其最大可用內存大小(位元組)。
那麼當所需內存,超過maxmemory怎麼辦?
這個時候就該配置文件中的maxmemory-policy出場了。
其默認值是noeviction。
下面我將列出當可用內存不足時,刪除redis鍵具有的淘汰規則。
規則說明:
1、volatile-lru
使用LRU演算法刪除一個鍵(只對設置了生存時間的鍵)
2、allkeys-lru
使用LRU演算法刪除一個鍵
3、volatile-random
隨機刪除一個鍵(只對設置了生存時間的鍵)
4、allkeys-random
隨機刪除一個鍵
5、volatile-ttl
刪除生存時間最近的一個鍵
6、noeviction
不刪除鍵,只返回錯誤
LRU演算法,least RecentlyUsed,最近最少使用演算法。也就是說默認刪除最近最少使用的鍵。
但是一定要注意一點!redis中並不會准確的刪除所有鍵中最近最少使用的鍵,而是隨機抽取3個鍵,刪除這三個鍵中最近最少使用的鍵。
那麼3這個數字也是可以設置的,對應位置是配置文件中的maxmeory-samples.
三、集群怎麼做
Redis僅支持單實例,內存一般最多10~20GB。對於內存動輒100~200GB的系統,就需要通過集群來支持了。
Redis集群有三種方式:客戶端分片、代理分片、RedisCluster(在之後一篇文章詳細說一下。)
1、客戶端分片
通過業務代碼自己實現路由
優勢:可以自己控制分片演算法、性能比代理的好
劣勢:維護成本高、擴容/縮容等運維操作都需要自己研發
2、代理分片
代理程序接收到來自業務程序的數據請求,根據路由規則,將這些請求分發給正確的Redis實例並返回給業務程序。使用類似Twemproxy、Codis等中間件實現。
優勢:運維方便、程序不用關心如何鏈接Redis實例
劣勢:會帶來性能消耗(大概20%)、無法平滑擴容/縮容,需要執行腳本遷移數據,不方便(Codis在Twemproxy基礎上優化並實現了預分片來達到Auto Rebalance)。
3、Redis Cluster
優勢:官方集群解決方案、無中心節點,和客戶端直連,性能較好
劣勢:方案太重、無法平滑擴容/縮容,需要執行相應的腳本,不方便、太新,沒有相應成熟的解決案例
❷ 我打開分區助手後出現如下圖的腳本錯誤,開始沒有管後來分區後點提交重啟後分區沒有變化,怎麼辦求解!
你先把分區助手這個主程序挪到c盤這個分區里去執行,看看能不能用,我之前給c盤擴容也是這個問題,腳本錯誤的問題,很可能是你下的這個分區過助手和毛病換一個,網上有的是免安裝綠色版的,不要下安裝版的,
