Memcache基础(一)

Memcache笔记
作者:LiveJournal开发团体开发的高性能分布式内存缓存服务器
目的:通过缓存数据查询结果,减少对数据库的查询访问次数,提高动态web应用的速度,提高可扩展性
Memcache 为项目名称
Memcached为服务器端的主程序名称

运行原理:
  (1)在首次访问数据库的时候讲查询的数据保存到memcached中,
  (2)再次访问时直接访问memcached进行查询
 
什么时候用Memcached
(1)大量数据集中访问时;
(2)随着数据量的增加,访问集中时
  (3)随着连接数和请求数的增加

安装和卸载:
  -d install 安装memcached服务
  -d start 启动
  -d stopshutdown 关闭正在运行的memcached服务
  -d uninstall 卸载memcached服务
  -d restart 重启memcached 服务

常用命令
存储命令:
set 命令
add 命令
replace 命令
append 命令
读取命令:
get 命令
查看memcached使用状态
stats 命令
stats items 命令
stats slabs 命令
stats sizes 命令

flush_all 命令


客户端向服务器发送命令格式:

1)、
<command name> <key> <flags> <exptime> <bytes>\r\n
<command name>:set/get/add....   
<key>:key  
 <flags>:16位整数      
 <exptime>:过期时间(0)   
 <bytes>:需要存储的字节数   
 \r\n:结束标志
eg:
add key 0000111122223333 0 \r\n
2)、获取数据
get <key> * \r\n
<key> *  :表示一个或多个key  用空格分开
以\r\n 命令头结束
3)、 数据格式
VALUE <key> <falgs> <bytes >\r\n
<data black>\r\n
<key>  希望数据的key值
<falgs> 发送set命令设置的标志项
<bytes> 发送数据的长度 (不包含“\r\n”)
"\r\n" 文本行的结束标志
<data black> 希望接受的数据项
“\r\n” 接收一个数据项的结束标志
4)、delete <key> <time>\r\n
<key> key
<time>  客户端希望服务器删除数据的时间  (unix的时间或者从现在开的秒数)
“\r\n”

Memcached 的内存分配策略
数据存储方式:Slab Allocation 
按照预先分配的大小,将分配的内存分割成特定长度的块,以解决内存碎片问题
Slab Allocation 原理: 将分配的内存分割成各种尺寸的chunk  并把尺寸相同的块分组(chunk的集合)
分配级别:
page :分配slab的内存空间  默认 1M,分配给slab后再根据slab的大小切分成成chunk;
chunk: 用于缓存记录的内存空间
Slab Class :特定大小的chunk组(维护一个List)
memcached根据收到的数据大小选择合适数据大小的slab
注意:
1)、Memcached 分配出去的page是不会被回收的或者重新分配
2)、Memcached 申请的内存是不会被释放的;
3)、slab 空闲的chunk是不会借给别的slab使用;
浪费原因:
1)、chunk中存放的数据小于chunk长度 ,产生浪费
2)、page分块为chunk是分不完,产生浪费
3)、某个slab可能一直未被用到,产生浪费

过期方式:
Lazy Expiration(懒性过期)
Memcached内部不会监视记录是否过期,而是get时查看记录的过期时间戳(lazy expiration)
LRU(最近最少使用)
Memcached 会优先使用以超时的记录空间,如果在追加新纪录时空间不足时,就要从最近未被使用的记录中搜索,并将其空间分配给新的记录 













  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值