redis,mongodb,memcached区别,mongodb与redis
对于大中型网站来说,利用缓存减少数据库访问次数是提高网站性能的重要手段之一。Memcached和Redis是Django项目生产环境中最常用的缓存回退。今天,我们将快速了解如何在Django项目中将Memcached和Redis配置为缓存后备。哪个更好?本文将对这两种存储系统进行比较,并在文末给出答案。
Memcache缓存
Memcache是一个高性能的分布式内存对象缓存系统,是Django支持的最快最高效的缓存系统。Memcached的优势在于它是一个快速的、分布式的缓存,可以同时运行在多个服务上(Django把它们当成一个大缓存)。
设置步骤Memcached
Windows系统:官网下载,解压安装。
Linux系统:在Ubuntu系统上,使用sudo apt-get installlibeventevent-dev安装Memcached依赖项,然后使用sudo apt-get安装Memcached。
安装详情请参考专网教程:https://www.runOOB.com/memcached/memcached-tutorial.html.
第二步:启动Memcached
# Linux系统-前端启动/usr/local/memcached/fzdc/memcached-p 11211-m64m-vv # Linux系统-作为后台服务启动/usr/local
Python操作必须在memcached数据库中安装python-memcached或pylibmc。建议前者。
将pip安装py hon-memcached步骤memcached设置为Django缓存回滚。
# local cache,local caches={ default :{ back end : django . core . cache . backends . memcached . memcacad UNIX套接字通信缓存={ default :{ back end : django . core . cache . backends . memcached . memcached cached back end : django . core . cache . backends . memcached . memcached cache , locationds , 172 . 19 . 26 . 24233333 location :[(172 . 19 . 26 . 26 . 26 . 26 . 2
Redis是目前最快的内存非关系(NoSQL)数据库。Redis不仅支持简单的键值类型数据,还提供了许多数据结构的存储,包括列表、集合、zset和散列。
设置步骤Redis
Windows系统:官网下载,解压安装。请选中该框并输入环境变量。
Linux系统:可以使用sudo apt-get install redis-server安装Ubuntu系统。
步骤Redis服务已启动
# Windows系统:cmd进入redis安装目录,redis服务redis-server.exe redis . Windows . conf # Linux系统启动:Redis安装目录启动redis/redis.conf#并在Redis-CLI . exe-h 127 . 0 . 0 . 1-p 6379 # Windows系统上单独打开一个窗口(可选)。建议像其他服务器一样设置,提高安全性。
由于redis默认绑定到此计算机,第一步将是取消此设置。
#用V编辑配置文件sudo vim /etc/redis/redis.conf
im打开配置文件后,注释掉下面一行:
# fzdcd 127.0.0.1然后设置登录密码。由于配置文件很长,请在命令模式下输入/requirepass foobared以快速搜索此配置项:
#找到下面一行,去掉注释,修改前:#requirepass foobared#修改为:requirepass your_pwd #设置新密码。修改后,使用redis-server restart重启服务器,使配置生效。以后从其他服务器访问redis时,可以携带自己设置的密码:
Redis-cli -a your_pwd -h hostip步骤3: pip安装django-redis
redis安装启动后,还需要通过pip安装django-redis,才能在django中操作redis数据库。
安装Django-Redis步骤4:将Redis设置为Django缓存后台
CACHES={ default :{ back end : django _ redis . cache . redis cache , LOCATION : redis://your _ host _ ip:6379 ,# redis所在的服务器或容器的Ip地址 options :{ client _ class : django _ redis . client . default client , password: your _ pwd ,# the password you set },}}还可以在settings.py中设置缓存的默认过期时间(非必需)。
redis _ time out=24 * 60 * 60 cubes _ redis _ time out=60 * 30 never _ redis _ time out=365 * 24 * 60 * 60测试缓存是否设置成功。在settings.py中修改了缓存的配置之后,您一定想知道Django缓存是否设置成功。您可以输入以下命令来打开Python的命令交互窗口:
Python manage.py shell然后逐个输入以下命令进行测试。如果没有错误,您的缓存设置是成功的。
从django.core.cache导入cache #引入缓存模块cache.set(k1 , 555 ,60*1) #用k1的键和值555写缓存,有效期1min。cache.has_key(k1)#确定是否有cache.get(k1) #获取键。
Memcached和Redis都是基于内存的键值型数据存储系统,既快速又支持分布式部署。但是,它们之间有很大的区别。
数据结构:与memcached相比,Redis拥有更多的数据结构(如list、set、zset、hash),支持丰富的数据操作。
最大键值大小:Redis的每个键值的最大存储大小是512MB,而Memcached的每个键值的最大大小是1MB。
数据持久化:Memcached不支持数据持久化,服务器重启后缓存的数据就没有了。Redis不仅支持缓存数据在硬盘上的持久化,还支持主从模式的数据备份。
在各方面,Redis都远远优于Memcached。如果你的企业想选择一个缓存系统,边肖建议直接去redis就够了。
本文摘自大疆狗博客《Django高级系列Django多缓存配置》一文。链接如下(点击原文阅读跳转)。
https://pythondjango.cn/django/advanced/7-cache/
Memcached vs Redis
Django基础(8):缓存应用场景及工作原理、缓存设置及使用方法相关阅读
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。