usage memcache in linux

set和add的区别
set可以重写存在的键值对, 也可以添加新的/ 而add不行, 如果存在已有的键名, 则add不会做更新该键值对, 不做任何事, 就是一次无效操作, 也就是, add可以防止重写 已经存在的键值对

php的服务名称是: php-fpm

memcache:
分成 服务器端软件 + 客户端软件 (思想其实很简单, 就是不让apache从数据库, 从磁盘, 从files中去读取数据, 而是从 某个机器(memcache服务器)的内存中去取数据
php的memcache客户端软件是: php-memcached_php5?
操作过程是: 通过php_memcached_php5 扩展中提供的函数, 比如 set, get, add, delete 等, 来 "操作" 服务器上的内存. 实际上, 肯定地, 不是由该扩展中的函数 直接 去操作服务器的内存中的内容. 即不现实也不允许. 而是由扩展中的这些get//set函数, 向服务器发送请求/命令, 由服务器内部的C语言 函数/方法 来完成具体的实际动作

像php_memcached_...-1.0.0.tar.gz这些 源码包, 经过编译后, 目的就是为了 得到这个 库文件 .so文件,
得到so库文件后, 不必将这个库文件 拷来拷去, 移动到指定的某个目录, 因为在配置文件中, 是支持库文件带目录的. ( 比如: php.ini文件中, extension = /some/path/to/ ....so)

============================

关于phpize

phpize是用来 扩展 php扩展模块的, 通过phpize可以建立php的 "外挂模块".
通俗地说, 就是你想在 原来已经编译好的php中, 后来再加入其他模块. 就要使用phpize
当要安装memcached的php客户端, 在进行 ./configure --with-php-config=/usr/local/php/bin/php-config之前, 就要 先运行一次 phpize命令.

安装完成 php-memcached-...so 后, 还要在 php.ini文件中加入 extension =/path/to/memcached.so

memcached -d 要以后台程序服务运行, (-d就是 --daemon), 否则就会一直卡在terminal命令行)

memcache项目的官网是: ??http://memcached.org
服务器端软件是: memcached-1.5.20.tar.gz
在dnf中可以通过dnf(yum)安装, 但是大多数 都要求自己 编译安装?? 或许是可以指定 (找得到)安装目录?
memcached is a free & open source, high-performance, distributed memory object caching system by alleviating database load. memcached 是一个自由开源的/高性能的, 分布式内存对象缓存系统.

=============================================

安装过程

(一) 安装服务器端的memcached-1.5.20

  1. 安装依赖包: libevent, libevent-devel
  2. 安装memcached
    tar -zxvf memcached-1.5.20.tar.gz
    cd memcached-1.5.20
    ./configure --prefix=/usr/local/memcached (--enable-64bit)
    make && make install
  3. 开启服务
    cd /usr/local/memcached/bin
    ./memcached -u www -d (-u 指定用户, 不能!!?? 是root), -d 后台运行
[root@localhost memcached-server]# netstat -ltn
Active Internet connections (only servers)
Proto Recv-Q     Send-Q     Local Address           Foreign Address         State      
tcp        0              0             0.0.0.0:11211           0.0.0.0:*                   LISTEN 
//// 在本地机器上的所有ip地址的11211端口,  监听任意外部机器任意端口传入的连接请求

(二) 安装客户端的php_memcached... 参考: https://www.jb51.net/article/53172.htm

  1. 安装 libmemcached (这个是 php-memcached的客户端安装时需要事先安装的 依赖包) ::: 因为php_memcached扩展库(就是 ??pecl.php/package/中的 memcached扩展) 要通过 libmemcached库提供 的api跟 memcached的服务器通信

tar -zxvf libmemcached...
cd libmcached...
./configure --prefix=/usr/local/libmemcached --with-memcached

下载安装libmemcached客户端
官网地址:http://libmemcached.org/libMemcached.html
$wget -c https://launchpad.net/libmemcached/1.0/1.0.16/+download/libmemcached-1.0.16.tar.gz


$tar -zxvf libmemcached-1.0.16.tar.gz
$cd libmemcached-1.0.16
$./configure --prefix=/usr/local/libmemcached --with-memcached
$sudo make
$sudo make install

下载安装memcached
官网地址:http://pecl.php.net/package/memcached  : 有三个级别:  Top Level :: Caching :: memcached ...

$wget -c http://pecl.php.net/get/memcached-2.2.0b1.tgz
$tar -zxvf memcached-2.2.0b1.tgz
$cd memcached-2.2.0b1

$sudo /usr/local/php/bin/phpize  (要  在memcached的解压目录中 运行 phpize这个命令,  因为下载的 扩展的  外挂目录中 原先并没有 配置命令configure这个文件, 要运行 phpize命令后,  才会在 这个目录中 生成/增加 phpize这个文件. )  

进入源码目录中 去运行phpize:  make sure that you  run 'phpize' in the top level source directory of the module)
$./configure --enable-memcached --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached --disabled-memcached-sasl
$sudo make
$sudo make install

--enable-somelib 是启用什么库, 这个不需要用等号, --with-somesoft= 要用等号指定, 其实 是指定 这个软件的 头文件和 库文件所在的位置: ... requires somesoft support. specify the prefix where xxx headers and library located.
上面的 php-config 其实是 /usr/bin/下的 一个 可执行 文件!

distribution: 主要有两个意思: 一个是"分布"; 一个是"分配"
abnormal distribution 非正态分布
these birds have a wide geo'graphic distribution
Unequal distribution of wealth may cause division in society
所以, 分布式的... 是 distributed...

=========================================

在linux中, 目录名称: 在最后面是不用加 斜杠的, 比如:
php configuration file path: /etc
scan for additional .ini files in /etc/php.d //// 表示文件类型的单词, 是要在 扩展名前加点号: .ini, .txt files , additional .ini files parsed:

php命令的几个常用选项options
-a interactively run, run as interactive shell
-f parse and execute the .php file
-l syntax check only(lint) lint是用来 检查C 语言语法的, 包括(未使用的变量, 不可到达的代码...)
-i 显示php的信息, 相当于 phpinfo();
-m show compiled in modules.

使用tar 打包/压缩/解压缩时, 要改变解压锁的目录, 使用 -C 或 --directory=DIR change to DIR : 这个在 改变解压路径时很有用
在unix中, 鼠标/触摸板 向下是放大, win则相反

=======================================

allocate, allocation: ['2l2- kei] 分配 ; 配额; 分拨. 近似 assign等, 着重强调 财富/金钱/权力等 分配的比例等
use of... 使用...
useless: futile 无用的
he is a futile sort of person.
it is futile to allocate blame for this. 分担责任: to allocate blame for..

以mysql数据库为中心的设计, 由于压力的改变, 现在都转向: 以内存为中心的设计
nosql kv数据库(key-value)数据库, 通过: 预读 + 合并写入 的技术减小 后端mysql的i/o压力
有很多协议, memcache是通过 memcached 协议来通信和写入的

存储器的读写速度级别:
寄存器: ns级, 缓存cache 几十ns, 内存 几百ns, 而硬盘的读写速度是 ms级
memcached的 append和 prepend是 往value数据增加内容, 是 向一个 已经存在的 key 所对应的 value数据 的 后面 或 前面 增加数据.

============================================

use和 useful的读音区别

use [juz], 在元音的后面读z, 比如: use of... (使用....)
但是use的派生词中 , 都读 [s] , 比如: useful [jusful], useless [jusl2s]
a piece of useless knowledge.
it is a handsome if useless trinket. trinket[trinkit], 廉价的装饰品; 无用的东西

They bought it freehold : freehold: (不动产的)所有权. bought: 发音同 [but]

===========================================

pecl ['pekl]
pecl: (配额材料). php扩展库( php extension community library)
就是php.net的一个扩展库的 集合, 在这里你可以搜索, 下载扩展库
比如下载 memcached扩展库就是在: ??http://pecl.php.net/package/

=================================

在多个 表示"战争" 的单词中, 通常 "cam' paign" (重音在 pein那里) 具有 引申 含义: (战争, 战役); 活动; 竞选
the cam'paign was snowballing (snowball: n. 雪球; vi, 像滚雪球一样地迅速增大) problems that snowballed by the hour.
the campaign was a blockbuster.
election campaign: 竞选活动.

posted @ 2019-12-23 15:58  noitanym  阅读(258)  评论(0编辑  收藏  举报