zoukankan      html  css  js  c++  java
  • 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: 竞选活动.

  • 相关阅读:
    013.ES6 -对象字面量增强型写法
    012. ES6
    011. ES6 语法
    10. 9. Vue 计算属性的setter和getter 以及 计算属性的缓存讲解
    4. Spring MVC 数据响应方式
    3. SpringMVC 组件解析
    9. Vue 计算属性
    【洛谷 2984】给巧克力
    【洛谷 1821】捉迷藏 Hide and Seek
    【洛谷 1821】银牛派对Silver Cow Party
  • 原文地址:https://www.cnblogs.com/bkylee/p/12084241.html
Copyright © 2011-2022 走看看