<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ![](https://img.kancloud.cn/41/e0/41e066af9a6c25a24868d9667253ec98_1241x333.jpg) ## memcached ### 什么是memcached 1.memcached之前是danga的一個項目,最早是為LiveJournal服務的,當初設計師為了加速LiveJournal訪問速度而開發的,后來被很多大型項目采用。官網是www.danga.com或者是memcached.org。 2.Memcached是一個高性能的分布式的內存對象緩存系統,全世界有不少公司采用這個緩存項目來構建大負載的網站,來分擔數據庫的壓力。Memcached是通過在內存里維護一個統一的巨大的hash表,memcached能存儲各種各樣的數據,包括圖像、視頻、文件、以及數據庫檢索的結果等。簡單的說就是將數據調用到內存中,然后從內存中讀取,從而大大提高讀取速度。 3.哪些情況下適合使用Memcached:存儲驗證碼(圖形驗證碼、短信驗證碼)、登錄session等所有不是至關重要的數據。 ### memcache特性 1.保存內存中 2.重啟服務,數據會丟失 3.LRU算法,根據最近使用的變量,將長時間沒有使用的變量刪除 4.memcache服務端是不安全的, 5.不適合單機使用,對內存的消耗比較大 6.格式簡單,不支持list數據格式 ### 安裝和啟動memcached ``` windows: 安裝:memcached.exe -d install。 啟動:memcached.exe -d start。 linux(ubuntu): 安裝:sudo apt install memcached 啟動: cd /usr/bin/memcached/ memcached -d start ``` ### 可能出現的問題: ``` 1.提示你沒有權限:在打開cmd的時候,右鍵使用管理員身份運行。 2.提示缺少pthreadGC2.dll文件:將pthreadGC2.dll文件拷貝到windows/System32. 3.不要放在含有中文的路徑下面 ``` ### 啟動memcached: ``` -d:這個參數是讓memcached在后臺運行。 -m:指定占用多少內存。以M為單位,默認為64M。 -p:指定占用的端口。默認端口是11211。 -l:別的機器可以通過哪個ip地址連接到我這臺服務器。如果是通過service memcached start的方式,那么只能通過本機連接。如果想要讓別的機器連接,就必須設置-l 0.0.0.0 ``` 如果想要使用以上參數來指定一些配置信息,那么不能使用service memcached start,而應該使用/usr/bin/memcached的方式來運行。比如/usr/bin/memcached -u memcache -m 1024 -p 11222 start。 ### telnet操作memcached telnet ip地址 [11211] #### 添加數據 ``` set set key flas(是否壓縮) timeout value_length value set username 0 60 5 juran add add key flas(0) timeout value_length value add username 0 60 5 juran ``` set和add的區別:add是只負責添加數據,不會去修改數據。如果添加的數據的key已經存在了,則添加失敗,如果添加的key不存在,則添加成功。而set不同,如果memcached中不存在相同的key,則進行添加,如果存在,則替換。 #### 獲取數據 ``` get key get username ``` #### 刪除數據 ``` delete key delete username flush_all:刪除memcached中的所有數據。 ``` #### 自增自減 ``` incr key nums decr key nums ``` **查看memcached的當前狀態** ``` stats ``` ### 通過python操作memcached 安裝:python-memcached:pip install python-memcached 建立連接 ``` import memcache mc = memcache.Client(['127.0.0.1:11211','192.168.174.130:11211'],debug=True) ``` 設置數據 ``` mc.set('username','hello world',time=60*5) mc.set_multi({'email':'xxx@qq.com','telphone':'111111'},time=60*5) ``` 獲取數據 ``` mc.get('telphone') ``` 刪除數據 ``` mc.delete('email') ``` 自增自減 ``` mc.incr('read_count') mc.decr('read_count') ``` **分布式** ``` mc = memcache.Client(["192.168.164.137:11211","192.168.164.137:11212"],debug=True) mc.set_multi({"pwd":'123',"age":18},time=60) ``` memcached盡管是“分布式”緩存服務器,但服務器端并沒有分布式功能。各個memcached不會互相通信以共享信息,這完全取決于客戶端的實現. ### memcached的安全性 memcached的操作不需要任何用戶名和密碼,只需要知道memcached服務器的ip地址和端口號即可。因此memcached使用的時候尤其要注意他的安全性。這里提供兩種安全的解決方案。 1.使用-l參數設置為只有本地可以連接:這種方式,就只能通過本機才能連接,別的機器都不能訪問,可以達到最好的安全性。 2.使用防火墻,關閉11211端口,外面也不能訪問。 ``` ufw enable # 開啟防火墻 ufw disable # 關閉防火墻 ufw default deny # 防火墻以禁止的方式打開,默認是關閉那些沒有開啟的端口 ufw deny 端口號 # 關閉某個端口 ufw allow 端口號 # 開啟某個端口 ``` ### 在Django中使用memcached 首先需要在settings.py中配置好緩存 ``` CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': '127.0.0.1:11211', } } ``` 如果想要使用多臺機器,那么可以在LOCATION指定多個連接 ``` CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': [ '172.19.26.240:11211', '172.19.26.242:11211', ] } } ``` 配置好memcached的緩存后,以后在代碼中就可以使用以下代碼來操作memcached了: ``` from django.core.cache import cache def index(request): cache.set('abc','juran',60) print(cache.get('abc')) response = HttpResponse('index') return response ``` 需要注意的是,django在存儲數據到memcached中的時候,不會將指定的key存儲進去,而是會對key進行一些處理。比如會加一個前綴,會加一個版本號。如果想要自己加前綴,那么可以在settings.CACHES中添加KEY_FUNCTION參數: ``` CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': '127.0.0.1:11211', 'KEY_FUNCTION': lambda key,prefix_key,version:"django:%s"%key } } ``` memcached 常用命令及使用說明:https://www.cnblogs.com/wayne173/p/5652034.html
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看