博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Memcached概念
阅读量:6302 次
发布时间:2019-06-22

本文共 2343 字,大约阅读时间需要 7 分钟。

hot3.png

 

LRU LFU算法介绍

LRU算法的设计原则是:如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。也就是说,当限定的空间已存满数据时,应当把最久没有被访问到的数据淘汰。

 

LFU(Least Frequently Used)最近最少使用算法。它是基于“如果一个数据在最近一段时间内使用次数很少,那么在将来一段时间内被使用的可能性也很小”的思路。

 

LRU的淘汰规则是基于访问时间,而LFU是基于访问次数的。

 

 

Memcached分配内存机制 slab alloction

Memcached会预先分配内存,memcached分配内存方式称之为allocator,首先,这里有3个概念: 

1 slab 
2 page 
3 chunk

4 item

 

 

LRU LFU算法介绍

LRU算法的设计原则是:如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。也就是说,当限定的空间已存满数据时,应当把最久没有被访问到的数据淘汰。

 

LFU(Least Frequently Used)最近最少使用算法。它是基于“如果一个数据在最近一段时间内使用次数很少,那么在将来一段时间内被使用的可能性也很小”的思路。

 

LRU的淘汰规则是基于访问时间,而LFU是基于访问次数的。

 

 

Memcached分配内存机制 slab alloction

Memcached会预先分配内存,memcached分配内存方式称之为allocator,首先,这里有3个概念: 

1 slab 
2 page 
3 chunk

4 item

 

112452_npWQ_698249.png

 

112511_4mpZ_698249.png

 

 

 

启动Memcache的服务器端:

[root]# /usr/local/bin/memcached -d -m 100 -u root -l 192.168.36.200 -p 11211 -c 256 -P /tmp/memcached.pid  

    -d选项是启动一个守护进程, 
    -m是分配给Memcache使用的内存数量,单位是MB,我这里是100MB, 
    -u是运行Memcache的用户,我这里是root, 
    -l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.36.200, 
    -p是设置Memcache监听的端口,我这里设置了11211,最好是1024以上的端口,我们这里统一使用11211
    -c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定。
    -P是设置保存Memcache的pid文件,我这里是保存在/tmp/memcached.pid, 

 

 

Memcached单进程最大使用内存为2G,要使用更多内存,可以分多个端口开启多个Memcached进程 

  最大30天的数据过期时间,设置为永久的也会在这个时间过期,常量REALTIME_MAXDELTA 
  60*60*24*30控制 
  最大键长为250字节,大于该长度无法存储,常量KEY_MAX_LENGTH 250控制 
  单个item最大数据是1MB,超过1MB数据不予存储,常量POWER_BLOCK 1048576进行控制, 
  它是默认的slab大小 
  最大同时连接数是200,通过 conn_init()中的freetotal进行控制,最大软连接数是1024,通过 
  settings.maxconns=1024 进行控制 
  跟空间占用相关的参数:settings.factor=1.25, settings.chunk_size=48, 影响slab的数据占用和步进方式

 

 

启动Memcache的服务器端:

[root]# /usr/local/bin/memcached -d -m 100 -u root -l 192.168.36.200 -p 11211 -c 256 -P /tmp/memcached.pid  

    -d选项是启动一个守护进程, 
    -m是分配给Memcache使用的内存数量,单位是MB,我这里是100MB, 
    -u是运行Memcache的用户,我这里是root, 
    -l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.36.200, 
    -p是设置Memcache监听的端口,我这里设置了11211,最好是1024以上的端口,我们这里统一使用11211
    -c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定。
    -P是设置保存Memcache的pid文件,我这里是保存在/tmp/memcached.pid, 

 

 

Memcached单进程最大使用内存为2G,要使用更多内存,可以分多个端口开启多个Memcached进程 

  最大30天的数据过期时间,设置为永久的也会在这个时间过期,常量REALTIME_MAXDELTA 
  60*60*24*30控制 
  最大键长为250字节,大于该长度无法存储,常量KEY_MAX_LENGTH 250控制 
  单个item最大数据是1MB,超过1MB数据不予存储,常量POWER_BLOCK 1048576进行控制, 
  它是默认的slab大小 
  最大同时连接数是200,通过 conn_init()中的freetotal进行控制,最大软连接数是1024,通过 
  settings.maxconns=1024 进行控制 
  跟空间占用相关的参数:settings.factor=1.25, settings.chunk_size=48, 影响slab的数据占用和步进方式

转载于:https://my.oschina.net/rouchongzi/blog/799223

你可能感兴趣的文章
第八章 进程间通信
查看>>
HttpSession接口中的方法(Jsp中的session类的用法)
查看>>
「镁客早报」AI可预测心脏病人死亡时间;机器人开始在美国送外卖
查看>>
MoQ(基于.net3.5,c#3.0的mock框架)简单介绍
查看>>
物联网全面升级,十年内推动工业进入智能化新阶段
查看>>
spring-通过ListFactory注入List
查看>>
一种基于SDR实现的被动GSM嗅探
查看>>
阿里云ECS每天一件事D1:配置SSH
查看>>
SQL Server 性能调优(性能基线)
查看>>
uva 10801 - Lift Hopping(最短路Dijkstra)
查看>>
[Java Web]servlet/filter/listener/interceptor区别与联系
查看>>
POJ 2312Battle City(BFS-priority_queue 或者是建图spfa)
查看>>
从零开始学MVC3——创建项目
查看>>
CentOS 7 巨大变动之 firewalld 取代 iptables
查看>>
延时任务和定时任务
查看>>
linux下的权限问题
查看>>
教你如何使用Flutter和原生App混合开发
查看>>
Spring Boot 整合redis
查看>>
CSS hover改变背景图片过渡动画生硬
查看>>
JDBC(三)数据库连接和数据增删改查
查看>>