85590296 2020-02-16
当我们登录memcached的时候,发现不需要任何密码,只需要端口号和ip地址就可以了,很不安全。下面为大家提供两种解决方法:
...shellufw 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参数:
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 } }
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