1、linux下启动memcache

  1. [root@localhost ~]# memcached -d -m 512 -u root -p 12266 -c 256

参数名称及意义:

-d   以守护进程方式启动。如果该参数没有指定,当按ctrl+c命令结束,memcache自动关闭

-m  分配给memcache使用的最大内存数 单位是m,默认是64m

-u   指定运行memcache的用户

-l:   指定监听的ip地址

-p   指定监听的tcp端口号,可以通过-u指定udp端口.默认是11211

-c   最大并发连接数

-P   报错进程id的文件

2、连接memcache

linux下一般使用telnet连接memcache服务,如下:

  1. [root@localhost ~]# telnet 127.0.0.1 11266

3、基本操作

添加修改key-value,命令格式:

  1. <command> <key> <flags> <exptime> <bytes>\r\n

参数名称及意义:

command   add, set或 replace

key            缓存的名字

flag           16位无符号整数,和key要存储的数据一起存储,并在程序get缓存时,返回。

exptime     过期时间,0 表示永远不过期,如果非零,表示unix时间或距此秒数

bytes         存储数据的字节数

\r\n           表示换行回车

【补充】

key:学过计算机基础和学过计算机数据库结构的人都知道,计算机有个比较常用的结构叫hash,这是数据结构中最重要的数据结构。key和value就是通过hash,hash有一个自己独造的函数,通过key计算某个固定的值,将value存到这个key计算的固定的值里面,当我们通过get取得时候,通过key我们就可以很快的在内存中找到我们当时存的key所对应的value的值,所以速度非常快;

flag:memcache 基于简单的文本协议,传输的东西,理解成字符串来存储,有经验的同学会将array() object() 转成json_encode()这个字符串,存到 memcached里边。那怎么来区分当时是存的是字符串还是array()或object()呢?这就是flag的意义。

例子:

add title 1 0 16

welcome to maizi

Stored

 expire:设置缓存的有效期。它有三种方式:

1)设置它的秒数,从当前的时间算起,到第n秒失效。比如失效时间是10秒,就是从当前的时间算,过来10秒你再去get这个web的时候,它是没有的。

2)使用时间戳的方式,就是指定明天某个时候失效,这个场景主要运用于抢购,如抢购手机,希望明天的这个时候缓存失效,可以从相关网站获得时间戳信息如下。

3)将expire设置为0,设置为0后就不自动失效,有的人以为这个是一个永久数据,这种理解是错误的。这里说一种极端的方式,比如memcache挂了,再重启memcache服务,但这里面的数据就都不会存在                        了。我们在编译memcache的时候,使用了一个最长的常量,默认时间为30天,所以即使你设置为0,30天以后,它的数据也会失效。还有一种情况是可能我等不到这30天,就会被新的数据挤出去,这个就                      是老数据被踢的这个现象。

命令结果:

STORED #表示成功

NOT_STORED  #表示失败

CLIENT_ERROR bad data chunk  #输入数据有误

添加缓存:

  1. add kk 1 0 4 #回车
  1. 1234 #回车
  1. STORED

如果key已经存在,则会添加失败。如果数据 不是4个字节 应该会提示数据错误。

修改缓存:

  1. replace kk 1 0 2 #回车
  1. 11 #回车
  1. STORED

key存在时,成功;不存在时,失败。

设置缓存:

  1. set kk 1 0 4 #回车
  1. 1234 #回车
  1. STORED

key不存在时,添加【add】;已存在时,替换【replace】。

读取:

  1. get kk
  1. VALUE kk 1 4
  1. 1234

多个key时,用空格隔开。

删除:

  1. delete kk #回车
  1. DELETED

清空所有缓存:

  1. flush_all
  1. OK

查看缓存服务器状态:

  1. stats

其他命令:

  1. version #显示版本号
  1. stats reset #清空统计数据
  1. stats slabs #显示各个slab的信息,包括chunk的大小、数目、使用情况等
  1. stats items #显示各个slab中item的数目和存储时长(最后一次访问距离现在的秒数)

退出telnet:

  1. ctrl+]
  1. tlenet>quit

memcache的基本操作的更多相关文章

  1. Python操作 Memcache、Redis、RabbitMQ

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  2. 数据库缓存之Memcache知识点

    Memcache知识点总结: 一.Memcache安装及使用 参考地址:https://www.jb51.net/article/66525.htm 1.将下载的Memcache安装文件放到某盘下,如 ...

  3. PHP的Memcached简单实现

    Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.也可动态缓存一些实 ...

  4. memcache 基本操作

    输入 telnet  localhost 11211 步骤: 1.输入 set hans 0 0 3 回车 2. 输入 123  回车 3. get  hans 回车 删除操作,输入 delete h ...

  5. 使用Memcache缓存mysql数据库操作的原理和缓存过程浅析

    转载自脚本之家 http://www.jb51.net/article/51831.htm  作者:忙碌的松鼠 对于大型网站如facebook,ebay等网站,如果没有Memcache做为中间缓存层, ...

  6. memcache基础

    一.Memcache是一种缓存技术(内存),你可以把它想像成一张巨大的内存表,形式如下[它就是一个服务] key value key值(字符串) 可以放(字符串[二进制数据[视频.音频.图片]],数值 ...

  7. memcache讲解和在.net中初使用

    memcache讲解和在.net中初使用 2017年10月17日 22:51:36 等待临界 阅读数:503   前言 传统数据库面临的问题 数据库死锁 磁盘IO 正文 了解memcache 原理 基 ...

  8. day39 mysql数据库基本操作

    什么是数据库 用来存储数据的仓库 数据库可以在硬盘及内存中存储数据 主要学习硬盘中存储数据,因为内存中的数据总有一天会丢失 数据库与文件存储数据区别 (公司的开发是综合内容的) 数据库本质也是通过文件 ...

  9. Python全栈-数据库介绍与基本操作

    .数据库管理软件的由来 数据库的产生是为了解决数据的永久储存.数据安全.以及对方对外服务时能够实现并发服务等效果.例如解决前面所学的Scoket编程中,在不考虑硬件问题的基础上,服务端服务多个客户端时 ...

随机推荐

  1. QQ浏览器、火狐浏览器中页面有点大的问题记录

    做页面时候,发现火狐和腾讯QQ浏览器有个问题,就是会将页面显示的比较大,像点了缩放比例120%似的,事实上缩放比例是100%,很奇怪. 甚至面对这个问题,连腾讯公司主页也会放大,也让我很困惑. 比如: ...

  2. hadoop distcp 命令使用指导

    1.概述 DistCp(distributed copy)是一款被用于大型集群间/集群内的复制工具. 它使用MapReduce来实现其分布,错误处理和恢复以及报告.它将文件列表和目录扩展为map任务的 ...

  3. Python进阶11---异常及模块化

    异常处理 异常Exception 产生异常

  4. Linux(Ubuntu)使用日记------Mysql编码(utf-8)的设置

    Mysq版本:5.7.21 操作系统:Linux(Ubuntu) 整个操作的基本思路如下(包括问题的解决思路,想要直接解决问题的可以先看最后的命令总结) 检查mysql编码 找到Mysql的配置文件 ...

  5. Spring Boot环境下出现No operations allowed after connection close错误

    一个基于springcloud的微服务项目,详细配置: SpringCloud + SpringMVC+SpringData JPA+ MySql+Postgresql 其中项目配置了多数据源,前期开 ...

  6. 浅析Java的Object类

    前言:   最近在回顾Java基础,在此过程中,查看源码是少不了的   这里以JDK8以基准,记录一些自己查看源码的观感 Object类,翻阅源码,看看这个类的所在位置,是在 java.lang 包下 ...

  7. <TCP/IP原理> (三) 底层网络技术

    传输介质 局域网(LAN) 交换(Switching) 广域网(WAN) 连接设备 第三章 底层网络技术 引言 1)Interne不是一种新的网络 建立在底层网络上的网际网 底层网络——“物理网”,网 ...

  8. You Are the One HDU - 4283 (区间DP)

    Problem Description The TV shows such as You Are the One has been very popular. In order to meet the ...

  9. Android Bundle详解

    http://blog.csdn.net/cswhale/article/details/39053411 1 Bundle介绍 Bundle主要用于传递数据:它保存的数据,是以key-value(键 ...

  10. percona-xtrabackup快速安装及其简单使用

    percona-xtrabackup快速安装及其简单使用 cd /opt/环境:centos6.x yum -y install perl-DBIyum -y install perl-DBD-MyS ...