memcached命令行以及数据导出和导入、 php连接memcached以及储到sessions

memcached命令行

进入到memcached中,如果没有可以yum安装
telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is ‘^]‘.
set key2 0 30 2
set:是用来储存数据的
key:这里面key2是key的名字,因为memcached是属于key- valux,存数据要有一个key,也要有一个valux。
2:这里面的2是你要存到数值是两位的,或者是两个字节。比如我输入11,得到的结果为STORED,如果输入3个字符就会报错。
get+key的名,可以用来查看是否储存成功,储存成功的显示为储存的内容+END。
30:这里面的30为过期时间,就是过了30秒数据就会消失。用get查看只会得到END的结果。

Memcached语法规则

<command name> <key> <flags> <exptime> <bytes>\r\n <data block>\r\n
注:\r\n在windows下是Enter键
<command name> 可以是set, add, replace
set表示按照相应的<key>存储该数据,没有的时候增加,有的时候覆盖
add表示按照相应的<key>添加该数据,但是如果该<key>已经存在则会操作失败
replace表示按照相应的<key>替换数据,但是如果该<key>不存在则操作失败。
<key> 客户端需要保存数据的key

<flags> 是一个16位的无符号的整数(以十进制的方式表示)。该标志将和需要存储的数据一起存储,并在客户端get数据时返回。客户端可以将此标志用做特殊用途,此标志对服务器来说是不透明的

<exptime> 为过期的时间。若为0表示存储的数据永远不过期(但可被服务器算法:LRU 等替换)。如果非0(unix时间或者距离此时的秒数),当过期后,服务器可以保证用户得不到该数据(以服务器时间为标准)。

<bytes> 需要存储的字节数,当用户希望存储空数据时<bytes>可以为0

<data block>需要存储的内容,输入完成后,最后客户端需要加上\r\n(直接点击Enter)作为结束标志

<delete> delete+库名可以删除数据

创建数据
set key1 1 110 4
1234
STORED
get key1
VALUE key1 1 4
1234
END

替换数据
replace key1 1 110 5
98756
STORED
get key1
VALUE key1 1 5
98756
END

增加数据
add key1 1 110 2
12
NOT_STORED
add key2 1 110 3
123
STORED
get key2
VALUE key2 1 3
123
END

删除数据
get key6
VALUE key6 1 3
llt
END
delete key6
DELETED
get key6
END

Memcached数据导出和导入
首先输入数据
set name 1 0 5
aming
STORED
set age 1 0 2
20
STORED
set k1 1 0 5
12345
STORED
telnet> quit
Connection closed.
然后检查状态:memstat --servers=127.0.0.1:11211
Server: 127.0.0.1 (11211)
pid: 1428
uptime: 5322
time: 1530712057
version: 1.4.15
libevent: 2.0.21-stable
pointer_size: 64
rusage_user: 0.114001
rusage_system: 0.114001
curr_connections: 10
total_connections: 13
connection_structures: 11
reserved_fds: 20
cmd_get: 8
cmd_set: 10
cmd_flush: 0
cmd_touch: 0
get_hits: 5
get_misses: 3
delete_misses: 0
delete_hits: 1
incr_misses: 0
incr_hits: 0
decr_misses: 0
decr_hits: 0
cas_misses: 0
cas_hits: 0
cas_badval: 0
touch_hits: 0
touch_misses: 0
auth_cmds: 0
auth_errors: 0
bytes_read: 356
bytes_written: 264
limit_maxbytes: 67108864
accepting_conns: 1
listen_disabled_num: 0
threads: 4
conn_yields: 0
hash_power_level: 16
hash_bytes: 524288
hash_is_expanding: 0
bytes: 216
curr_items: 3
total_items: 9
expired_unfetched: 0
evicted_unfetched: 0
evictions: 0
reclaimed: 3

导出:
[[email protected] ~]# memcached-tool 127.0.0.1:11211 dump
Dumping memcache contents
Number of buckets: 1
Number of items : 3
Dumping bucket 1 - 3 total items
add k1 1 1530706735 5
12345
add name 1 1530706735 5
aming
add age 1 1530706735 2
20

我们也可以把结果重定向到一个文件里。
memcached-tool 127.0.0.1:11211 dump > data.txt
[[email protected] ~]# memcached-tool 127.0.0.1:11211 dump > data.txt
Dumping memcache contents
Number of buckets: 1
Number of items : 3
Dumping bucket 1 - 3 total items
[[email protected] ~]# cat data.txt
add k1 1 1530706735 5
12345
add name 1 1530706735 5
aming
add age 1 1530706735 2
20

导入: nc 127.0.0.1 11211 < data.txt
若nc命令不存在,yum install nc
[[email protected] ~]# nc 127.0.0.1 11211 < data.txt
NOT_STORED
NOT_STORED
NOT_STORED
这里我们发现导入不成功,这是因为在memcached中还有数据,所以不成功。这时我们要重启一下memcached才可以导入,这是因为memcached是以内存的形式存在,重启以后数据库就会清空。
[[email protected] ~]# systemctl restart memcached
[[email protected] ~]# nc 127.0.0.1 11211 < data.txt
STORED
STORED
STORED
这样就可以了。
然后进入memcached查看
[[email protected] ~]# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is ‘^]‘.
get name
END
发现没有数据,,这是因为在我们到处数据的会后数据加了时间戳,所以导入失败。
[[email protected] ~]# cat data.txt
add k1 1 1530706735 5
12345
add name 1 1530706735 5
aming
add age 1 1530706735 2
20

我们要将数据的时间戳改掉,才可以继续导入数据。
add k1 1 10000 5
12345
add name 1 1530706735 5
aming
add age 1 10000 2
20
我们将age和k1的时间戳改掉,然后重试一次。
[[email protected] ~]# nc 127.0.0.1 11211
get k1
VALUE k1 1 5
12345
END
get name
END
get age
VALUE age 1 2
20
END
这样就成功的导入数据了。

php连接memcached
cd /usr/local/src/
wget http://www.apelearn.com/bbs/data/attachment/forum/memcache-2.2.3.tgz
tar zxf memcache-2.2.3.tgz
cd memcache-2.2.3
/usr/local/php-fpm/bin/phpize
[[email protected] memcache]# /usr/local/php-fpm/bin/phpize
Configuring for:
PHP Api Version: 20131106
Zend Module Api No: 20131226
Zend Extension Api No: 220131226
./configure --with-php-config=/usr/local/php-fpm/bin/php-config
make && make install
安装完后会在/usr/local/php-fpm/lib/php/extensions/no-debug-non-zts-20131226/
目录下生成memcache.so opcache.a opcache.so这三个文件,其中memcache.so最为主要。
然后修改 vim /usr/local/php-fpm/etc/php.ini
在扩展模块extension区域添加一行extension="memcache.so“
检查/usr/local/php-fpm/bin/php -m
[[email protected] memcache]# /usr/local/php-fpm/bin/php -m|grep memcache
memcache(模块已经生成)

PHP连接Memcached
下载测试脚本
curl www.apelearn.com/study_v2/.memcache.txt > 1.php 2>/dev/null
执行脚本
/usr/local/php-fpm/bin/php 1.php
[[email protected] ~]# /usr/local/php-fpm/bin/php 1.php
Get key1 value: This is first value<br>Get key1 value: This is replace value<br>Get key2 value: Array
(
[0] => aaa
[1] => bbb
[2] => ccc
[3] => ddd
)

memcached中存储sessions

本实例是在lamp/lnmp环境下实现
httpd.conf中对应的虚拟主机中添加
php_value session.save_handler "memcache"
php_value session.save_path "tcp://127.0.0.1:11211"
或者php-fpm.conf对应的pool中添加
php_value[session.save_handler] = memcache
php_value[session.save_path] = " tcp://127.0.0.1:11211 "

原文地址:http://blog.51cto.com/13067688/2136344

时间: 2024-11-04 14:56:49

memcached命令行以及数据导出和导入、 php连接memcached以及储到sessions的相关文章

21.5-21.8 memcached命令行、导出与导入、PHP连接memcached、存储会话

21.5 memcached命令行 创建数据 yum install -y telnet 利用telnet命令连接memcached数据库 telnet 127.0.0.1 11211 #写入数据 set key2 0 30 2 12 STORED 这个是错误的示范,因为0 30 已经存在 set key 0 30 3 12 CLIENT_ERROR bad data chunk ERROR 检测存储状态 #利用get key值查看 get key END get key2 END #因为定义了

21.5 memcached命令行;21.6 memcached数据导出和导入;21.7 php连接

21.5 memcached命令行 Memcached语法规则: 1. <command name> <key> <flags> <exptime> <bytes>\r\n <data block>\r\n 注:\r\n在windows下是Enter键 2. <command name> 可以是set, add, replace 3. set表示按照相应的<key>存储该数据,没有的时候增加,有的时候覆盖 4.

memcached命令行memcached数据导入和导出PHP链接memcached memcach

memcached命令行 memcached数据导入和导出 PHP链接memcached 先安装php的memcache扩展cd /usr/local/src/wget ?http://www.apelearn.com/bbs/data/attachment/forum/memcache-2.2.3.tgz tar zxf memcache-2.2.3.tgz?cd memcache-2.2.3/usr/local/php-fpm/bin/phpize./configure --with-php

memcached命令行操作详解

连接到memcached命令行下:  telnet 127.0.0.1 11211 1.set / add / replace : 格式:<command> <key> <flags> <exptime> <bytes> (点击回车) <data> a) <command> 可以是”set”, “add”, “replace”.“set”表示按照相应的<key>存储该数据,没有的时候增加,有的覆盖.“add”表

HBase表数据导出和导入

本文不是技术收集贴,就是记录一下,因此没有收集所有的HBase表导入导出方式,只是记录一下自己用过的一种. 数据表的导出: 1 $ bin/hbase org.apache.hadoop.hbase.mapreduce.Driver export <tablename> <outputdir> [<versions> [<starttime> [<endtime>]]] 需要注意的是,outputdir指的是HDFS上的路径,建议使用绝对路径(没

Elasticsearch的数据导出和导入操作(elasticdump工具),以及删除指定type的数据(delete-by-query插件)

Elasticseach目前作为查询搜索平台,的确非常实用方便.我们今天在这里要讨论的是如何做数据备份和type删除.我的ES的版本是2.4.1. ES的备份,可不像MySQL的mysqldump这么方便,需要一个插件进行数据的导出和导入进行备份和恢复操作.这里要说的插件是elasticdump. elasticdump的安装: [[email protected] ~]# yum install elasticdump 已加载插件:fastestmirror, product-id, subs

MySQL数据导出与导入

发一篇基础的,关于MySQL数据导出导入的文章,目的有二: 1.备忘 2.供开发人员测试 工具 mysql/source 导入mysqldump 导出 应用举例 导出 导出全库备份到本地的目录 mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --lock-all-tables --add-drop-database -A > db.all.sql 导出指定库到本地的目录(

使用Scrapy命令行工具【导出JSON文件】时编码设置

Windows 10家庭中文版,Python 3.6.4,virtualenv 16.0.0,Scrapy 1.5.0, 使用scrapy命令行工具建立了爬虫项目(startproject),并使用scrapy genspider建立了爬虫,用于抓取某中文门户网站首页的 新闻标题及其链接,全程都在虚拟环境(virtualenv)中执行. 使用scrapy crawl执行爬虫程序并导入一个json文件,此时可以看到,命令行窗口显示的 新闻标题是中文,但在打开导出的json文件时,其新闻标题显示为以

HBase表的数据导出和导入

1. 表数据导出 hbase org.apache.hadoop.hbase.mapreduce.Export test file:///home/hadoop/test (导入到本地) hbase org.apache.hadoop.hbase.mapreduce.Export test /user/hadoop/test (导入到hdfs上) #创建一个test表,一个列簇info hbase(main):004:0* create 'test','info' 0 row(s) in 4.3