memcached

在python中使用memcached --- Python-memcached

你。 提交于 2020-04-08 07:19:51
1.memcached安装 使用apt-get安装memcached # sudo apt-get install memcached 启动一个memcached实例 # memcached -m 10 -p 12000 -m 10 是指定最多使用的内存大小单位是M,如果不指定默认会使用64M -p 12000 是指定端口号,默认端口为11211 另一个例子 说明一下参数 memcached -d -m 10 -u root -l 192.168.40.4 -p 12000 -c 256 -P /tmp/memcached.pid 参数说明: -d选项是启动一个守护进程 -m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB -u是运行Memcache的用户,我这里是root -l是监听的服务器IP地址 -p是设置Memcache监听的端口,最好是1024以上的端口 -c选项是最大运行的并发连接数,默认是1024,按照你服务器的负载量来设定 -P是设置保存Memcache的pid文件 memcached配置文件存放在 /etc/memcached.conf 日志文件存放在 /var/log/memcached.log Memcached 操作: telnet localhost 11334 set foo 0 0 3 bar STORED get foo

PHP7 安装 Memcached

随声附和 提交于 2020-04-08 04:15:14
PHP版本:PHP 7.3.16 LINUX版本:7.6 安装成功的样子: php -r "phpinfo();" | grep memcached memcached memcached support => enabled libmemcached version => 1.0.16 memcached.compression_factor => 1.3 => 1.3 memcached.compression_threshold => 2000 => 2000 memcached.compression_type => fastlz => fastlz memcached.default_binary_protocol => Off => Off memcached.default_connect_timeout => 0 => 0 memcached.default_consistent_hash => Off => Off memcached.serializer => php => php memcached.sess_binary_protocol => Off => Off memcached.sess_connect_timeout => 0 => 0 memcached.sess_consistent_hash => On => On memcached

memcache内存分配机制

隐身守侯 提交于 2020-04-07 03:30:42
memcached的内存分配没有用到c语言中自带的malloc函数,因为这个函数分配内存的时候效率很低,对于这种要求快速响应,对效率要求非常高的缓存软件来说非常不合适。 memcached用的是自己的一套内存分配方法,叫做slab allocation。 ***64位的操作系统能分配 2GB 以上的内存。32位的操作系统中,每个进程最多只能使用 2GB 内存。 ***如果想缓存更多的数据,建议还是开辟更多的memcache进程(不同端口)或者使用分布式memcache进行缓存,将数据缓存到不同的物理机或者虚拟机上。 ***memcached启动时指定的内存分配(如:-m 64)是memcached用于保存数据的量,不包括memcached本身占用的内存、以及为了保存数据而设置的管理空间。因此,memcached进程的实际内存分配量要比指定的容量要大。 Memcache进程启动,在内存开辟了连续的区域。咱们用上面的图形来举例,这段连续的区域就好像上面的slab1+slab2+slab3+……+slab(n).分配区域相同的构成了slab(分片组)。Slab下面可不直接就是存储区域片(就是图中的chunks)了。而是page,如果一个新的缓存数据要被存放,memcached首先选择一个合适的slab,然后查看该slab是否还有空闲的chunk,如果有则直接存放进去;如果没有则要进行申请

memcached

拥有回忆 提交于 2020-04-06 19:43:08
1.缓存的简介 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的用户访问量很大的时候,每一次的的后台操作,都会消耗很多的服务端资源,所以必须使用缓存来减轻后端服务器的压力. 缓存是将一些常用的数据保存内存或者memcache中,在一定的时间内有人来访问这些数据时,则不再去执行数据库及渲染等操作,而是直接从内存或memcache的缓存中去取得数据,然后返回给用户. 2.Django提供了6种缓存方式 开发调试缓存 内存缓存 文件缓存 数据库缓存 Memcache缓存(使用python-memcached模块) Memcache缓存(使用pylibmc模块) 经常使用的有文件缓存和Mencache缓存 2.1 各种缓存方式的配置文件说明 2.1.1 开发调试(此模式为开发调试使用,实际上不执行任何操作) settings.py文件配置 ? 1 2 3 4 5 6 7 8 9 10 CACHES = { 'default' : { 'BACKEND' : 'django.core.cache.backends.dummy.DummyCache' , # 缓存后台使用的引擎 'TIMEOUT' : 300 , # 缓存超时时间(默认300秒,None表示永不过期,0表示立即过期) 'OPTIONS'

Seafile Server 7.1.3避坑:解决依赖关系

五迷三道 提交于 2020-04-06 18:23:00
1. Seafile依赖说明   以下依赖, 有 * 标记的为必装,加粗表示推荐使用系统提供的软件包 安装(有些python包之所以推荐使用系统提供的包管理器安装,是因为他们基本都需要编译,并且有的软件包还依赖其他第三方的软件,若使用pip安装,需要安装其他依赖): 依赖( * 为必装) 说明 pip * Python 的包管理器,推荐使用系统软件包安装,包名为 python3-pip wheel * Python 包的最新二进制格式支持,部分 Python 包安装时会先打包成 .whl 格式,需要这个包的功能 python3 * 使用系统软件包安装,包名为 python3 sqlite3 使用sqlite数据库时需要安装,apt中包名为 sqlite3 ,yum中包名为 sqlite mysql-server 使用mysql数据库时要安装,若有其他可用的mysql服务,可以不装。这里推荐 mariadb-server ,因为各发行版都会提供 python-ldap 需要使用ldap存储用户信息(通常在企业中使用)时要安装,推荐使用系统软件包 jinja2 这是 Python Web 开发的一套模板系统,功能、性能、安全性都比较强,不安装这个包并没发现什么影响,可能专业版需要 * sqlalchemy Python 的一套功能强大的 ORM 系统,不安装没发现受到影响

服务器高危端口列表

蓝咒 提交于 2020-04-06 09:45:04
端口 服务 渗透测试 tcp 20,21 FTP(文件传输协议) 允许匿名的上传下载,爆破,嗅探,win提权,远程执行(proftpd 1.3.5),各类后门(proftpd,vsftp 2.3.4) tcp 22 SSH (安全外壳协议 ) 可根据已搜集到的信息尝试爆破,v1版本可中间人,ssh隧道及内网代理转发,文件传输等等 tcp 23 Telnet ( 远程终端协议) 爆破,嗅探,一般常用于路由,交换登陆,可尝试弱口令 tcp 25 SMTP(简单邮件传输协议) 邮件伪造,vrfy/expn查询邮件用户信息,可使用smtp-user-enum工具来自动跑 tcp/udp 53 DNS(域名系统) 允许区域传送,dns劫持,缓存投毒,欺骗以及各种基于dns隧道的远控 tcp/udp 69 TFTP (简单文件传送协议 ) 尝试下载目标及其的各类重要配置文件 tcp 80-89,443,8440-8450,8080-8089 各种常用的Web服务端口 可尝试经典的topn,vpn,owa,webmail,目标oa,各类Java控制台,各类服务器Web管理面板,各类Web中间件漏洞利用,各类Web框架漏洞利用等等…… tcp 110 POP3(邮局协议版本3 ) 可尝试爆破,嗅探 tcp 111,2049 NFS(网络文件系统) 权限配置不当 tcp 137,139,445

一致性hash算法--负载均衡

。_饼干妹妹 提交于 2020-04-05 15:55:56
有没有好奇过redis、memcache等是怎么实现集群负载均衡的呢? 其实他们都是通过一致性hash算法实现节点调度的。 讲一致性hash算法前,先简述一下求余hash算法: hash(object)%N 一个缓存服务器宕机了,这样所有映射到这台服务器的对象都会失效,我们需要把属于该服务器中的缓存移除,这时候缓存服务器是 N-1 台,映射公式变成了 hash(object)%(N-1) ; 由于QPS升高,我们需要添加多一台服务器,这时候服务器是 N+1 台,映射公式变成了 hash(object)%(N+1) 。 1 和 2 的改变都会出现所有服务器需要进行数据迁移。 一致性HASH算法 一致性HASH算法的出现有效的解决了上面普通求余算法在节点变动后面临全部缓存失效的问题: type Consistent struct {   numOfVirtualNode int   hashSortedNodes []uint32   circle map[uint32]string   nodes map[string]bool } 简单地说,一致性哈希将整个哈希值空间组织成一个虚拟的圆环,如假设某空间哈希函数H的值空间是0-2^32-1(即哈希值是一个32位无符号整形),整个哈希空间如下: 下一步将各个服务器使用哈希算法计算出每台机器的位置

memcached-session-manager配置(tomcat 全局会话共享)

为君一笑 提交于 2020-04-02 15:34:43
转 http://blog.csdn.net/big1980/article/details/8454333 <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:192.168.100.x:11211" requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$" sessionBackupAsync="false" sessionBackupTimeout="100" transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory" copyCollectionsForSerialization="false" /> msm configuration memcached-session-manager 配置 session共享 声明:本篇文章是根据 memcached-session-manager官方配置方法wiki页面 翻译整理,关于memcached-session-manager的介绍,具体参见官网: http://code.google.com/p/memcached

Memcached内存缓存技术

北战南征 提交于 2020-04-01 15:17:06
Memcached是什么,有什么作用? Memcached是一个开源的、高性能的内存缓存软件,从名称上看Mem就是内存的意思,而Cache就是缓存的意思。 Memcached通过在事先规划好的内存空间中临时缓存数据库中的各类数据,以减少业务直接对数据库的访问,从而减轻数据库的访问压力和网站集群的响应速度。 Memcached服务在企业集群架构中应用场景 1.作为数据库的前端缓存应用 完整缓存(易):例如商品分类,以及商品信息,可实现放到内存里,然后再对外提供数据访问。这个被称之为预热。用户访问时可以只读取memcached缓存,不读取数据库了。 热点缓存(难):需要前端程序配合。只缓存热点的数据,即缓存经常被访问的数据。先预热基础数据,然后再动态更新。程序先读取缓存,如果缓存里没有对应的数据,程序再去读取数据库,然后程序把读到的数据放入缓存。 特殊说明: 如果碰到电商秒杀等高并发的业务,一定要事先预热,或者其他思想实现,例如:秒杀只是获取资格,而不是瞬间秒杀到手商品。如果数据更新,要同时触发缓存更新,防止给用户过过期数据。 2.作为集群的session会话共享存储 优点:速度比files块,可以解决共用session问题 缺点:不能持久化,只能单点部署,多点数据无法同步,即使用hash分配节点,也会有session丢失 Memcached服务在不同企业业务应用场景中的工作流程 1

NoSQL数据库介绍、memcached安装

烂漫一生 提交于 2020-03-30 13:57:47
NoSQL数据库 什么是NoSQL数据库? 非关系型数据库就是NoSQL,关系型数据库代表MySQL; 关系型数据库,是需要吧数据存储到库、表、行、字段中,查询需要根据条件一行行的匹配,需要从磁盘中检索,耗费时间和资源; NoSQL数据库,存储原理简单(数据类型为K-V),数据可以存储在内存里,查询速度非常快;扩展非常容易,支持分布式; 常见的NoSQL数据库 k-v形式:memcached、redis适合存储用户信息,比如回话、配置文件、参数、购物车等等。这些信息一般与ID(键)挂钩,这种情景下键值数据库是很好的选择; 文档数据库:mongodb将数据以文档的形式存储; 列存储:Hbase 图:Neo4j、Infinite Graph、OrientDB memcached介绍 特点:缓存数据库查询结果,减少数据库访问次数,恻然提高动态web站点性能; 官网:www.memcached.org 数据结构简单(k-v),数据存放在内存中;重启数据会丢失,重启前必须将数据保存到硬盘中; 多线程; 基于c/s架构,协议简单; 基于libevent的时间处理; 自主内存存储处理(slab allowcation) 数据过期方式:Lazy Expiration 和LRU ~~ 安装memcached 源码包 yum install -y libmemcached libevent yum