日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis 作为缓存服务器的配置

發布時間:2025/4/16 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis 作为缓存服务器的配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:http://www.open-open.com/lib/view/open1419670554109.html#

隨著Redis的發展,越來越多的架構用它取代了memcached作為緩存服務器的角色,它有幾個很突出的特點:
1. 除了Hash,還提供了Sorted Set, List等數據結構
2. 可以持久化到磁盤
3. 支持cluster (3.0)

它的性能和memcached不相上下,再加上流行的其他組件(比如隊列)也會用到redis,從架構簡單出發,已經沒有必要混用redis和memcached了。

寫篇短文介紹一下用redis作為緩存服務器配置時候需要注意幾個點。

Redis配置

作為緩存服務器,如果不加以限制內存的話,就很有可能出現將整臺服務器內存都耗光的情況,可以在redis的配置文件里面設置:

# 限定最多使用1.5GB內存 maxmemory 1536mb

如果內存到達了指定的上限,還要往redis里面添加更多的緩存內容,需要設置清理內容的策略:

# 設置策略為清理最少使用的key對應的數據 maxmemory-policy allkeys-lru

清理策略有多種,redis的官方文檔有一篇很詳細的說明:?http://redis.io/topics/lru-cache

Redis監控

redis提供了INFO這個命令,能夠隨時監控服務器的狀態,只用telnet到對應服務器的端口,執行命令即可:

telnet localhost 6379 info

在輸出的信息里面有這幾項和緩存的狀態比較有關系:

keyspace_hits:14414110 keyspace_misses:3228654 used_memory:433264648 expired_keys:1333536 evicted_keys:1547380

通過計算hits和miss,我們可以得到緩存的命中率:14414110 / (14414110 + 3228654) = 81% ,一個緩存失效機制,和過期時間設計良好的系統,命中率可以做到95%以上,對于整體性能提升是很大的。
used_memory,expired_keys,evicted_keys這3個信息的具體含義,redis的官方也有一篇很詳細的說明:?http://redis.io/commands/info

有個ruby gem叫redis-stat,它利用INFO命令展現出更直觀的信息報表,推薦:
https://github.com/junegunn/redis-stat

優化Rails的緩存配置

Rails在用redis作為緩存的時候,配置很簡單,官方文檔是用schema的方式來寫的:

config.cache_store = :redis_store, "redis://localhost:6379/0/cache"

由于實在太簡單了,很多人就直接用這個默認設置了,但實際上還有一些很有用的參數可以通過hash options的方式來寫,比如壓縮超過32K的數據壓縮以后再放入緩存,再比如設置默認所有的key失效時間為8小時:

config.cache_store = :redis_store, {:host => 'redis.server', :port => 6379, :compress => true, :expires_in => 8.hours, :compress_threshold => 32.kilobytes}

用一個實際案例來作為例子,一臺redis緩存服務器在優化配置之前,占用4.2G左右的內存,緩存命中率在70%左右。
我們先在服務器上執行BGSAVE命令,將內存dump下來,然后用https://github.com/sripathikrishnan/redis-rdb-tools?這個工具,將dump的數據,解析成csv文件:

rdb -c memory /var/redis/6379/dump.rdb > memory.csv用excel打開分析,按key進行排序和統計,我們可以看到哪一些類型的緩存在服務器上最多,調整這個類型緩存的失效時間和失效機制,再通過redis-stat來觀察進行微調,提高整體的命中率。
通過分析占用內存比較大的key,發現有30%左右的相同類型key,用了95%的內存,這些緩存大部分是html的片段緩存,通過設置compress_threshold和compress參數,讓整體內存占用從4.2G,下降到了1.3G。

來自:https://ruby-china.org/topics/22761

總結

以上是生活随笔為你收集整理的Redis 作为缓存服务器的配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。