memcached服務介紹

memcached

    • 基礎概念
    • 安裝使用

基礎概念

Memcached 是一個高性能的分布式內存對象緩存系統,用于減少數據庫負載,加速動態 Web 應用。

Memcached 的基本概念

  • 緩存:Memcached 的核心功能是緩存數據,它將經常訪問的數據存儲在內存中,從而減少數據庫的負載,提高數據讀取速度。
  • 分布式:Memcached 設計為分布式系統,可以將數據分布在多臺服務器上,從而提升緩存系統的整體容量和性能。

工作原理

1,鍵值對存儲
Memcached 使用鍵值對存儲數據:

  • 鍵(Key):一個唯一的標識符,用于檢索數據。
  • 值(Value):實際存儲的數據,可以是任何二進制數據(字符串、對象等)。

2,哈希算法
Memcached 使用一致性哈希算法將數據分布到不同的服務器上:

  • 一致性哈希:通過哈希函數將鍵映射到特定的緩存服務器上,保證數據分布的均勻性和負載的均衡性。

3,內存管理
Memcached 采用 LRU(Least Recently Used,最近最少使用)策略管理內存:

  • LRU策略:當內存不足時,Memcached 會刪除最早未被訪問的數據,以騰出空間存儲新的數據。

優點

  • 高性能:由于數據存儲在內存中,讀寫速度極快,通常在毫秒級別。
  • 擴展性:通過增加服務器,可以線性擴展緩存容量和處理能力。
  • 簡單易用:Memcached 提供了簡單的API,并且有豐富的客戶端庫支持多種編程語言。

應用場景

  • Web應用加速:緩存數據庫查詢結果、API響應等,提高網頁響應速度,減輕數據庫負載。
  • 會話存儲:將用戶會話數據存儲在內存中,提供快速訪問,常用于分布式Web應用。
  • 臨時數據存儲:適用于需要快速訪問但不需要持久保存的數據,如臨時計算結果、頻繁更新的數據等。

安裝使用

Ubuntu2204安裝

apt install -y memcached
systemctl enable --now memcached

對memcached文件進行參數配置

vi /etc/memcached.conf

-m 64:指定 Memcached 使用的最大內存為 64 MB。注意,這個值是 Memcached 可以增長到的大小,而不是啟動時立即占用的大小。

-p 11211:指定 Memcached 的默認監聽端口為 11211。

-u memcache:指定運行 Memcached 的用戶為 memcache。如果沒有指定該參數,默認會以 root 用戶運行。

-l 127.0.0.1:指定 Memcached 監聽的 IP 地址為 127.0.0.1(本地回環地址),只允許本地訪問。

-c 1024:限制同時接受的最大連接數為 1024。默認情況下,這一行是注釋掉的,意味著使用守護進程的默認值

當在配置文件中修改參數后需要重啟生效

systemctl restart memcached.service

命令運行測試

以守護進程方式運行,最大內存128MB,監聽0.0.0.0,端口11212、指定連接限制為2048,使用8個線程,塊大小增長因子為1.5,最大項目大小為2MB并以詳細模式輸出:

memcached -d -u memcache -m 128 -l 0.0.0.0 -p 11212 -c 2048 -t 8 -f 1.5 -I 2m -v

但是使用命令發現一個問題!!就是不會實際生效,只會增加一個進程,暫時不能理解這個問題,如果需要對實際服務進行配置,還是編輯配置文件

例如,我修改配置文件;指定最大內存,監聽地址等,可以在服務中查看到

root@huhy:~# systemctl restart memcached.service
root@huhy:~# systemctl status memcached
● memcached.service - memcached daemonLoaded: loaded (/usr/lib/systemd/system/memcached.service; enabled; preset: enabled)Active: active (running) since Thu 2024-06-27 10:02:52 UTC; 2s agoDocs: man:memcached(1)Main PID: 3426 (memcached)Tasks: 10 (limit: 4556)Memory: 1.8M (peak: 2.7M)CPU: 24msCGroup: /system.slice/memcached.service└─3426 /usr/bin/memcached -m 128 -p 11213 -u memcache -l 0.0.0.0 -l ::1 -P /var/run/memcached/memcached.pid

使用命令后;并沒有實際修改,反而添加了一個額外的端口和進程

root@huhy:~# memcached -d -u memcache -m 128 -l 0.0.0.0 -p 11212 -c 2048 -t 8 -f 1.5 -I 2m -v
root@huhy:~# systemctl status memcached.service
● memcached.service - memcached daemonLoaded: loaded (/usr/lib/systemd/system/memcached.service; enabled; preset: enabled)Active: active (running) since Thu 2024-06-27 10:02:52 UTC; 7min agoDocs: man:memcached(1)Main PID: 3426 (memcached)Tasks: 10 (limit: 4556)Memory: 1.8M (peak: 2.7M)CPU: 77msCGroup: /system.slice/memcached.service└─3426 /usr/bin/memcached -m 32 -p 11213 -u memcache -l 127.0.0.1 -l ::1 -P /var/run/memcached/memcached.pid
Jun 27 10:02:52 huhy systemd[1]: Started memcached.service - memcached daemon.
root@huhy:~# ss -tlun | grep 11
tcp   LISTEN 0      1024         0.0.0.0:11213      0.0.0.0:*
tcp   LISTEN 0      1024         0.0.0.0:11212      0.0.0.0:*
tcp   LISTEN 0      1024           [::1]:11213         [::]:*
root@huhy:~# ps -aux| grep mem
memcache    3426  0.0  0.1 412124  4736 ?        Ssl  10:02   0:00 /usr/bin/memcached -m 128 -p 11213 -u memcache -l 0.0.0.0 -l ::1 -P /var/run/memcached/memcached.pid
memcache    3470  0.0  0.0 707740  3132 ?        Ssl  10:10   0:00 memcached -d -u memcache -m 128 -l 0.0.0.0 -p 11212 -c 2048 -t 8 -f 1.5 -I 2m -v
root        3498  0.0  0.0   6544  2304 pts/0    S+   10:12   0:00 grep --color=auto mem
root@huhy:~#

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/36672.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/36672.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/36672.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ECMAScript6介紹及環境搭建

這實際上說明,對象的解構賦值是下面形式的簡寫。 let { foo: foo, bar: bar } { foo: ‘aaa’, bar: ‘bbb’ }; 也就是說,對象的解構賦值的內部機制,是先找到同名屬性,然后再賦給對應的變量。真正被賦值的是后者,而…

數據結構_緒論

1.數據結構的研究內容 研究數據的特性和數據之間的關系 用計算機解決一個問題的步驟 1.具體問題抽象成數學模型 實質: 分析問題--->提取操作對象--->找出操作對象之間的關系(數據結構)--->用數學語言描述 操作對象對象之間的關系 2.設計算法 3.編程,調試,運行 …

GO語言面試題目,使用3個協程按照順序從1打印到100

GO語言面試題目,使用3個協程按照順序從1打印到100 稍微把題目拓展了下,使用N個協程 打印M個數,應該很好理解,創建一個N個協程的列表,然后每打印一個數,就傳到下一個chan中,一次循環 package m…

【數據結構與算法】哈希函數 詳解

哈希函數的構造方法有哪些? 直接定址法:直接使用關鍵字或者關鍵字的某個線性函數值作為哈希地址。 數字分析法:對關鍵字進行分析,選擇關鍵字中的某幾位或者進行某種運算得到的結果作為哈希地址。 平方取中法:先計算關…

通信協議總結

IIC 基本特點 同步,半雙工 標準100KHz,最高400KHz(IIC主要應用于低速設備) 硬件組成 需外接上拉電阻 通信過程 空閑狀態 SDA和SCL都處于高電平 開始信號S和終止信號P 在數據傳輸過程中,當SCL0時,SDA才…

十常侍亂政 | 第2集 | 愿領精兵五千,斬關入內,冊立新君,誅殺宦黨,掃清朝廷,以安天下 | 三國演義 | 逐鹿群雄

🙋大家好!我是毛毛張! 🌈個人首頁: 神馬都會億點點的毛毛張 📌這篇博客是毛毛張分享三國演義文學劇本中的經典臺詞和語句,本篇分享的是《三國演義》第Ⅰ部分《群雄逐鹿》的第2??集《十常侍亂政治》&am…

匯聚榮做拼多多運營第一步是什么?

匯聚榮做拼多多運營第一步是什么?在眾多電商平臺中,拼多多憑借其獨特的社交電商模式迅速崛起,吸引了大量消費者和商家的目光。對于希望在拼多多上開店的商家而言,了解如何進行有效運營是成功的關鍵。那么,匯聚榮做拼多多運營的第…

【Android面試八股文】Looper如何在子線程中創建?

文章目錄 一、Looper的幾個重要方法二、子線程中使用Looper的方式1三、子線程中使用Looper的方式23.1 使用HandlerThread實現3.2 HandlerThread源碼解析創建子線程的 Looper必須要通過 Looper.prepare()初始化looper,然后再通過 Looper.loop()方法讓 Loop運行起來。 那么具…

算法入門:二分查找及其Java實現

在程序開發中,算法是解決問題的核心。本篇博客將詳細講解一種高效的查找算法——二分查找,并通過Java代碼示例幫助你理解其實現和應用。 如果你覺得這篇文章對你有幫助,不要忘記點贊、收藏和關注我,這將是對我最大的支持和鼓勵&am…

VMware 最新的安全漏洞公告VMSA-2024-0013

#深度好文計劃# 一、摘要 2024年6月26日,VMware 發布了最新的安全漏洞公告 VMSA-2024-0013,修復了 VMware ESXi 和 VMware vCenter 中的多個安全漏洞。 VMSA-2024-0013:VMware ESXi 和 vCenter Server 更新修正了多個安全性漏洞 &#xff…

Unity3D 物體的運動

運動方式1 修改 position / localPosition ,可以讓物體運動 例如, Vector3 pos this.transform.localPosition; pos.z distance; this.transform.localPosition pos; 此時,小車向Z 方向運動 具體代碼如下 using System.Collection…

C語言入門課程學習筆記10:結構體聯合體位域

C語言入門課程學習筆記10 第48課 - 自定義數據類型(上)實驗-typedef實驗小結 第49課 - 自定義數據類型(中)實驗實驗小結 第50課 - 自定義數據類型(下)實驗實驗小結 第51課 - 多文件程序設計實驗實驗實驗小結…

uni-app picker多列選項

預期實現的效果&#xff1a; 選中后的效果&#xff1a; // Dom部分 <template><picker mode"multiSelector" :range"ssqRange" range-key"name" columnchange"ssqColumnChange" change"ssqChange" class"p…

研究發現GPT-4o等較新的多模態AI模型的安全機制有不足之處

在 ChatGPT 和類似的生成式人工智能模型推出后&#xff0c;很多人都在強調安全問題&#xff0c;政府也參與其中&#xff0c;OpenAI 甚至成立了一個超級協調小組&#xff0c;以阻止未來的人工智能失控&#xff0c;但由于對人工智能安全的發展方向存在分歧&#xff0c;該小組于今…

03邏輯門電路

分立門電路&#xff1a; 集成門電路&#xff1a; TTL門電路 MOS門電路&#xff1a;NMOS門電路、PMOS門電路、CMOS門電路 BICMOS門電路&#xff1a;CMOS的高輸入阻抗和TTL的高放大倍數的結合 向更低功耗、更高速度發展 MOS管的Rdson在可變電阻區的阻值也一般會小于1000歐姆 …

達夢數據庫的系統視圖v$locked_object

達夢數據庫的系統視圖v$locked_object 在達夢數據庫&#xff08;Dameng Database&#xff09;中&#xff0c;V$LOCKED_OBJECT 視圖提供了與數據庫中被鎖定對象相關的信息。這通常用于監控和診斷數據庫中的鎖定問題&#xff0c;幫助管理員了解哪些對象被鎖定了&#xff0c;以及…

1.回溯算法.基礎

1.回溯算法 基礎知識題目1.組合2.組合-優化3.組合總和|||4.電話號碼和字母組合5.組合總和6.組合總和II7.分割回文串8.復原IP地址 基礎知識 回溯法也可以叫做回溯搜索法&#xff0c;它是一種搜索的方式。回溯是遞歸的副產品&#xff0c;只要有遞歸就會有回溯 因為回溯的本質是窮…

Excel 宏錄制與VBA編程 —— 11、工作表及工作簿操作(附:Worksheets與Sheets區別)

代碼1 - Worksheets與Sheets區別 Worksheets表示普通工作表;Sheets即可表示普通工作表也可表示圖標工作表。 下面模塊中代碼結果是一樣的,大家理解時可結合上面區別說明進行了解 Sub Test()Worksheets("Sheet1").Range("A1").Value 100Sheets("Sheet…

BioCLIP:物種圖像的基礎視覺模型

從無人機到個人手機&#xff0c;各種相機收集的自然世界圖像是越來越豐富的生物信息來源。從圖像中提取生物相關信息用于科學的計算方法和工具激增&#xff0c;尤其是計算機視覺。然而&#xff0c;其中大多數都是為特定任務設計的&#xff0c;不容易適應或擴展到新的問題、環境…

【編程知識】什么是編譯型語言?什么是解釋型語言?

1.編譯型語言&#xff1a; 源代碼由編譯器編譯為機器代碼&#xff08;中間代碼&#xff09;&#xff0c;生成可執行文件&#xff0c;后面的執行無需編譯&#xff0c;可以直接運行&#xff0c;無需依賴源代碼或編譯器。 執行速度更快&#xff0c;因為在執行前已經有一步編譯階段…