码迷,mamicode.com
首页 > 系统相关 > 详细

memcached安全性 django使用memcached

时间:2020-02-16 12:53:13      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:存储   ken   mba   key   color   ip地址   ref   多个   连接   

  当我们登录memcached的时候,发现不需要任何密码,只需要端口号和ip地址就可以了,很不安全。下面为大家提供两种解决方法:

  1. 使用‘-1’参数 设置为只有本地可以连接:连接方式,就只能通过本机才能连接,别的机器不能访问,可以达到最好的安全性。
  2. 使用防火墙,关闭‘11211’端口,外面也不能访问。
    ...shell
    ufw enable #开启防火墙
    ufw disable #关闭防火墙 ufw default deny #防火墙已禁止的方式打开,默认是关闭那些没有开启的端口。
    ufw deny 端口号 #关闭某个端口
    ufw allow 端口号 #开启某个端口 ...

     

django中使用memcached:

在settings.py中直接添加一个caches缓存。

CACHES = {
    default: {
        BACKEND: django.core.cache.backends.memcached.MemcachedCache,
        LOCATION: 127.0.0.1:11211,
    }
}

也可以用多个服务器,只需要在local中添加ip地址即可。

配置好memcached的缓存后,在views.py中就可以直接使用:

from django.http import HttpResponse
from django.core.cache import cache

def index(request):
    cache.set(username,zhiliao,100)
    username = cache.get(username)
    print(username)
    return HttpResponse(ok)

这时我们会在终端取值的时候会发现,我们指定的key不会被存储进去,而是会增加一个前缀,会加一个版本号。如果想要自己定义前缀,可以在settings.py中增加KEY_FUNCTION参数:

  1. 可以自己定义一个函数,
    def KEY_FUNCTION(key,key_prefix,version):
        return django:+key
    CACHES = {
        default: {
            BACKEND: django.core.cache.backends.memcached.MemcachedCache,
            LOCATION: 127.0.0.1:11211,
            KEY_FUNCTION:KEY_FUNCTION
        }
    }

     

  2. 也可以使用lambad表达式:
    CACHES = {
        default: {
            BACKEND: django.core.cache.backends.memcached.MemcachedCache,
            LOCATION: 127.0.0.1:11211,
            KEY_FUNCTION: lambda key,key_prefix,version:django+key
    
        }
    }

    这样我们在终端取值的时候就直接 get+自己定义的名字+key 就可以了

 

如何使用memcached中所有的key

 

  • stats items
  • stats cachedump [items_id] 0

 

memcached安全性 django使用memcached

标签:存储   ken   mba   key   color   ip地址   ref   多个   连接   

原文地址:https://www.cnblogs.com/nihao2/p/12316301.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!