精华内容
下载资源
问答
  • memcached功能
    2019-02-25 00:26:17

    server {
    listen 80;
    server_name www.aaa.com;
    #charset koi8-r;
    location / {
    set $memcached_key $uri;
    memcached_pass 127.0.0.1:11211; #连接memcached地址
    default_type text/html; #缓存类型
    error_page 404 @fallback; #如果没有缓存返回404 调用@fallback处理
    }
    location @fallback { #@fallback调用后端服务器 从后端服务器取回来后存储memcached服务器中
    proxy_pass http://172.16.0.1;
    }
    }

    更多相关内容
  • Memcache和Memcached,目前大部分PHP环境里使用的是名字里不带d的Memcache版本,这个版本释出的比较早,是一个原生版本,与之对应的带d的Memcached版本则是建立在libmemcached的基础上,所以说Memcached版本的功能更...
  • 下文简单介绍了memcached类的应用示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。 一、memcached 简介 在很多场合,我们都会听到 memcached 这个名字,但很多同学只是听过,并没有用过或实际了解过,只...
  • 主要介绍了php+Memcached实现简单留言板功能,结合实例形式较为详细的分析了php结合memcached实现留言板的具体步骤与相关操作技巧,需要的朋友可以参考下
  • 正如第1次中介绍的那样,memcached虽然称为“分布式”缓存服务器,但服务器端并没有“分布式”功能。服务器端仅包括第2次、第3次前坂介绍的内存存储功能,其实现非常简单。至于memcached的分布式,则是完全由客户端...
  • } 在nginx中做集群与负载均衡,步骤都是一样的 Upstream {}模块 把多台服务器加入到一个组 然后 memcached_pass, fastcgi_pass, proxy_pass ==> upstream组 在nginx中做集群与负载均衡,步骤都是一样的 Upstream {}...

    一、反向代理与负载均衡是什么?

    1.正向代理

    在这里插入图片描述

    2.反向代理

    在这里插入图片描述
    具体的负载均衡的方式:

    注意:负载均衡是一种方案,实现办法有DNS轮询,
    如下图,DNS服务器允许一个域名有多个A记录,
    那么在用户访问时,一般按地域返回一个较近的解析记录.
    这样,全国不同的地区的用户,看到的163的主页,来自不同的服务器.

    在这里插入图片描述

    3.当 解析出结果,比如浏览器连接60.217时,

    这台主机后面还有N台,也要做负载均衡.
    1: 硬件上做负载均衡, F5 BIG-IP ,硬件负载均衡(很贵).
    直接从TCP/IP的底层协议上,直接做数据包的中转.
    2: 软件负载均衡, LVS
    3: 反向代理+负载均衡

    在这里插入图片描述

    二、Nginx反向代理设置

    1.引入库

    : 把图片重写到 8080端口(既然能写到8080端口,就意味着可以写到其他独立服务器上)
            location ~ \.(jpg|jpeg|png|gif)$ {
                    proxy_pass http://192.168.1.204:8080;
                    expires 1d;
            }
    
    集群与均衡-----如果后端的服务器非常多,该如何写? 又如何均匀的分发任务?
    
    nginx 与memcached的组合
    
    用法: nginx响应请求时,直接请求memcached,
    如果没有相应的内容,再回调PHP页面,去查询database,并写入memcached.
    
    分析: memcached是k/v存储, key-->value,
    nginx请求memecached时,用什么做key?
    一般用 uri arg 做key,/abc.php?id=3
    
    

    三、Nginx 第三方模块的安装

    1、安装ngx_http_php_memcache_standard_balancer-maste

    以ngx_http_php_memcache_standard_balancer-master为例
    1:解压 到 path/ngx_module

    配置:
    ./configure --prefix=/xxx/xxx --add_module=/path/ngx_module
    编译 安装
    Make && make instal

    2、Nginx配置memcache集群

     upstream memserver {  把用到的memcached节点,声明在一个组里
            hash_key $request_uri;  // hash计算时的依据,以uri做依据来hash
            server localhost:11211;
            server localhost:11212;
        }
    Location里
    
            location / {
               # root   html;
               set $memcached_key $uri;
               memcached_pass memserver;  // memserver为上面的memcache节点的名称
               error_page 404 /writemem.php;
               index  index.php index.html index.htm;
            }
            
    在nginx中做集群与负载均衡,步骤都是一样的
    Upstream {}模块 把多台服务器加入到一个组
    然后 memcached_pass, fastcgi_pass, proxy_pass ==> upstream组
    
    

    在nginx中做集群与负载均衡,步骤都是一样的
    Upstream {}模块 把多台服务器加入到一个组
    然后 memcached_pass, fastcgi_pass, proxy_pass ==> upstream组

    默认的负载均衡的算法:
    是设置计数器,轮流请求N台服务器.
    可以安装第3方模式,来利用uri做hash等等.

    http://wiki.nginx.org/NginxHttpUpstreamConsistentHash
    这个模块就是用一致性hash来请求后端结节,并且其算法,
    与PHP中的memcache模块的一致性hash算法,兼容.

    安装该模块后:
    Nginx.conf中

    upstream memserver {
        consistent_hash $request_uri;
        server localhost:11211;
        server localhost:11212;
    }
    

    在PHP.ini中,如下配置

    memcache.hash_strategy = consistent

    这样: nginx与PHP即可完成对memcached的集群与负载均衡算法.

    展开全文
  • yrmcds是具有主/从复制功能的内存对象缓存系统。 当前,yrmcds支持两种协议:第一种是增强的,第二种是用于实现的协议。 由于memcached协议与完全兼容,因此yrmcds可以用作memcached的直接替代品。 得益于其基于...
  • 记忆快取 memcached是Node.js的功能齐全的Memcached客户端。 memcached的构建考虑了可伸缩性,高可用性和出色的性能。 我们使用一致的哈希存储跨不同节点的数据。 一致性哈希是一种提供哈希表功能的方案,该方式使得...
  • Memcached是什么,有什么作用?

    千次阅读 2021-07-26 13:51:17
    Memcached 是一个开源的,高性能的内存绶存软件,从名称上看Mem 就是内存的意思, 而Cache 就是缓存的意思。Memcached 的作用: 通过在事先规划好的内存空间中临时绶存数据库中的各类数据,以达到减少业务对数据库的...

    Memcached 是一个开源的,高性能的内存绶存软件,从名称上看Mem 就是内存的意思, 而Cache 就是缓存的意思。Memcached 的作用: 通过在事先规划好的内存空间中临时绶存数据库中的各类数据,以达到减少业务对数据库的直接高并发访问, 从而达到提升数据库的访问性能,加速网站集群动态应用服务的能力。

    memcached 服务在企业集群架构中有哪些应用场景?

    一、作为数据库的前端缓存应用

    a、完整缓存( 易) ,静态缓存

    例如:商品分类(京东),以及商品信息,可事先放在内存里, 然后再对外提供数据访问,这种先放到内存,我们称之为预热,( 先把数据存缓存中), 用户访问时可以只读取memcached 缓存,不读取数据库了。

    b、执点缓存(难)

    需要前端web 程序配合,只缓存热点的数据, 即缓存经常被访问的数据。
    先预热数据库里的基础数据,然后在动态更新,选读取缓存,如果缓存里没有对应的数据,程序再去读取数据库,然后程序把读取的新数据放入缓存存储。

    特殊说明:

    • 如果碰到电商秒杀等高并发的业务,一定要事先预热,或者其它思想实现,例如:称杀只是获取资格,而不是瞬间秒杀到手商品。

    那么什么是获取资格?

    • 就是在数据库中,把0 标成1.就有资格啦。再慢慢的去领取商品订单。因为秒杀过程太长会占用服务器资源。
    • 如果数据更新,同时触发缓存更新,防止给用户过期数据。
    • 对于持久化缓存存储系统,例如:redis,可以替代一部分数据库的存储,一些简单的数据业务,投票,统计,好友关注,商品分类等。nosql= not only sql

    二、作业集群的session 会话共享存储。

    • Memcached 服务在不同企业业务应用场景中的工作流程

    • 当web 程序需要访问后端数据库获取数据时会优先访问Memcached 内存缓存,如果缓存中有数据就直接获取返回前端服务及用户,如果没有数据(没有命中),在由程序请求后端的数据库服务器,获取到对应的数据后,除了返回给前端服务及用户数据外,还会把数据放到Memcached 内存中进行缓存,等待下次请求被访问,Memcache 内存始终是数据库的挡箭牌,从而大大的减轻数据库的访问压力,提高整个网站架构的响应速度,提升了用户体验。

    • 当程序更新,修改或删除数据库中已有的数据时,会同时发送请求通知Memcached 已经缓存的同一个ID 内容的旧数据失效,从而保证Memcache中数据和数据库中的数据一致。

    • 如果在高并发场合,除了通知Memcached 过程的缓存失效外,还会通过相关机制,使得在用户访问新数据前,通过程序预先把更新过的数据推送到memcache 中缓存起来,这样可以减少数据库的访问压力,提升Memcached中缓存命中率。

    • 数据库插件可以再写入更新数据库后,自动抛给MC 缓存起来,自身不Cache.

    展开全文
  • 一、memcached 简介在很多场合,我们都会听到 memcached 这个名字,但很多同学只是听过,并没有用过或实际了解过,只知道它是一个很不错的东东。这里简单介绍一下,memcached 是高效、快速的分布式内存对象缓存系统...
  • 仔细分析后发现这个功能用memcache来做最方便: 1、以用户IP和被请求的文件名作为KEY值。 2、以memcached的方法increment()来自增记录用户访问次数,increment()是原子性增加,准确。 3、设置set()时指定过期时间为...
  • 强大的对所有Memcached功能的访问 SASL支持二进制协议 多种哈希模式,包括一致的哈希 速度惊人,包括带有no_reply的可选流水线IO memcached库通过SWIG包装了纯C的libmemcached客户端。 安装 您需要Ruby 1.8.7或...
  • 存储命令的格式:<command> <key> <flags> <exptime> <bytes><data>参数说明如下: set/add/replace 查找关键字 ...这个set的命令在memcached中的使用频率极高。set命令不但可以简单添加,如果
  • 对于Bitnami映像,将尽快提供最新的错误修复和功能。 Bitnami容器,虚拟机和云映像使用相同的组件和配置方法-可以轻松地根据项目需求在格式之间进行切换。 我们所有的映像都基于是一个基于Debian的极简容器映像,...
  • 感谢与流查询相关的所有功能的 。 安装方式 $ npm install mongoose-memcached 用法 var mongoose = require ( 'mongoose' ) ; var options = { cache : true , // disable caching for all modules by default ...
  • 有许多功能和扩展是完美的。 提供同步和异步两种接口,使用方法非常简单,示例如下: MemcachedClient memcachedClient = new MemcachedClient ( new String []{ " 127.0.0.1:11211 " } , 10 ) ; // sync ...
  • Memcached配置

    2022-05-23 20:10:51
    Memcached是一款开源、高性能、分布式内存对象缓存系统,可应用各种需要缓存的场景,其主要目的是通过降低对Database的访问来加速web应用程序。 Memcached提供了为数不多的几个命令来完成与服务器端的交互,这些...

    Memcached是一款开源、高性能、分布式内存对象缓存系统,可应用各种需要缓存的场景,其主要目的是通过降低对Database的访问来加速web应用程序。

     

    Memcached提供了为数不多的几个命令来完成与服务器端的交互,这些命令基于memcached的协议实现。

     

    存储类命令:set, add, replace, append, prepend

    获取数据类命令:get, delete, incr/decr

    统计类命令:stats, stats items, stats slabs, stats sizes

    清理命令: flush_all

     

    一、安装libevent

     

    memcached依赖于libevent API,因此要事先安装之,项目主页:http://libevent.org/,读者可自行选择需要的版本下载。本文采用的是目前最新版本的源码包libevent-2.0.16-stable.tar.gz。安装过程:

     

    # tar xf libevent-2.0.20-stable.tar.gz

    # cd libevent-2.0.20

    # ./configure --prefix=/usr/local/libevent

    # make && make install

     

    # echo "/usr/local/libevent/lib" > /etc/ld.so.conf.d/libevent.conf

    # ldconfig

     

    二、安装配置memcached

     

    1、安装memcached

    # tar xf memcached-1.4.15.tar.gz

    # cd memcached-1.4.15

    # ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent

    # make && make install

     

     

    2、memcached SysV的startup脚本代码如下所示,将其建立为/etc/init.d/memcached文件:

     

    #!/bin/bash

    #

    # Init file for memcached

    #

    # chkconfig: - 86 14

    # description: Distributed memory caching daemon

    #

    # processname: memcached

    # config: /etc/sysconfig/memcached

     

    . /etc/rc.d/init.d/functions

     

    ## Default variables

    PORT="11211"

    USER="nobody"

    MAXCONN="1024"

    CACHESIZE="256"

    OPTIONS=""

     

    RETVAL=0

    prog="/usr/local/memcached/bin/memcached"

    desc="Distributed memory caching"

    lockfile="/var/lock/subsys/memcached"

     

    start() {

            echo -n $"Starting $desc (memcached): "

            daemon $prog -d -p $PORT -u $USER -c $MAXCONN -m $CACHESIZE $OPTIONS

            RETVAL=$?

            echo

            [ $RETVAL -eq 0 ] && touch $lockfile

            return $RETVAL

    }

     

    stop() {

            echo -n $"Shutting down $desc (memcached): "

            killproc $prog

            RETVAL=$?

            echo

            [ $RETVAL -eq 0 ] && rm -f $lockfile

            return $RETVAL

    }

     

    restart() {

            stop

            start

    }

     

    reload() {

            echo -n $"Reloading $desc ($prog): "

            killproc $prog -HUP

            RETVAL=$?

            echo

            return $RETVAL

    }

     

    case "$1" in

      start)

            start

            ;;

      stop)

            stop

            ;;

      restart)

            restart

            ;;

      condrestart)

            [ -e $lockfile ] && restart

            RETVAL=$?

            ;;       

      reload)

            reload

            ;;

      status)

            status $prog

            RETVAL=$?

            ;;

       *)

            echo $"Usage: $0 {start|stop|restart|condrestart|status}"

            RETVAL=1

    esac

     

    exit $RETVAL

     

     

    使用如下命令配置memcached成为系统服务:

    # chmod +x /etc/init.d/memcached

    # chkconfig --add memcached

    # service memcached start

     

    3、使用telnet命令测试memcached的使用

     

    Memcached提供一组基本命令用于基于命令行调用其服务或查看服务器状态等。

     

    # telnet 127.0.0.1 11211

     

     

    add命令:

    add keyname flag timeout datasize

    如:

    add mykey 0 10 12

    Hello world!

     

    get命令:

    get keyname

    如:get mykey

    VALUE mykey 0 12

    Hello world!

    END

     

    4、memcached的常用选项说明

     

    -l <ip_addr>:指定进程监听的地址;

    -d: 以服务模式运行;

    -u <username>:以指定的用户身份运行memcached进程;

    -m <num>:用于缓存数据的最大内存空间,单位为MB,默认为64MB;

    -c <num>:最大支持的并发连接数,默认为1024;

    -p <num>: 指定监听的TCP端口,默认为11211;

    -U <num>:指定监听的UDP端口,默认为11211,0表示关闭UDP端口;

    -t <threads>:用于处理入站请求的最大线程数,仅在memcached编译时开启了支持线程才有效;

    -f <num>:设定Slab Allocator定义预先分配内存空间大小固定的块时使用的增长因子;

    -M:当内存空间不够使用时返回错误信息,而不是按LRU算法利用空间;

    -n: 指定最小的slab chunk大小;单位是字节;

    -S: 启用sasl进行用户认证;

     

    三、安装Memcache的PHP扩展

     

    ①安装PHP的memcache扩展

     

    # tar xf memcache-2.2.5.tgz

    # cd memcache-2.2.5

    /usr/local/php/bin/phpize

    # ./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcache

    # make && make install

     

    上述安装完后会有类似以下的提示:

     

    Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/

     

    ②编辑/usr/local/php/lib/php.ini,在“动态模块”相关的位置添加如下一行来载入memcache扩展:

    extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/memcache.so

     

     

    而后对memcached功能进行测试,在网站目录中建立测试页面test.php,添加如下内容:

    <?php

    $mem = new Memcache;

    $mem->connect("127.0.0.1", 11211) or die("Could not connect");

     

    $version = $mem->getVersion();

    echo "Server's version: ".$version."<br/>\n";

     

    $mem->set('testkey', 'Hello World', 0, 600) or die("Failed to save data at the memcached server");

    echo "Store data in the cache (data will expire in 600 seconds)<br/>\n";

     

    $get_result = $mem->get('testkey');

    echo "$get_result is from memcached server.";         

    ?>

     

     

    如果有输出“Hello World is from memcached.”等信息,则表明memcache已经能够正常工作。

     

     

    四、使用libmemcached的客户端工具:

     

    访问memcached的传统方法是使用基于perl语言开发的Cache::memcached模块,这个模块在大多数perl代码中都能良好的工作,但也有着众所周知的性能方面的问题。libMemcached则是基于C语言开发的开源的C/C++代码访问memcached的库文件,同时,它还提供了数个可以远程使用的memcached管理工具,如memcat, memping,memstat,memslap等。

     

    1) 编译安装libmemcached

     

    # tar xf libmemcached-1.0.2.tar.gz

    # cd libmemcached-1.0.2

    # ./configure

    # make && make install

    # ldconfig

     

    2) 客户端工具

    # memcat --servers=127.0.0.1:11211 mykey

    # memping

    # memslap

    # memstat

     

     

    五、Nginx整合memcached:

     

    server {

            listen 80;

            server_name www.magedu.com;

     

            #charset koi8-r;

     

            #access_log logs/host.access.log main;

     

            location / {

                    set $memcached_key $uri;

                    memcached_pass 127.0.0.1:11211;

                    default_type text/html;

                    error_page 404 @fallback;

            }

     

            location @fallback {

                    proxy_pass http://172.16.0.1;

            }

    }

    展开全文
  • 功能 v0.0.13 修复 removeKey 上的 debugMsg 参数修复 memcached.set 上未定义的 errorMsge 在 addInput 上自动验证数据类型将数据转换为utf8存储过程示例 var sql = require('mssql-memcached');var connection =...
  • memcached源码

    2015-04-10 15:27:26
    (1、)java_memcached-release_1.6为java工程(内有详细的测试方法和用法)。 (2、)memcached-win32-1.4.4-14为memcached目录。 安装: cmd打开命令窗口,转到解压的目录(memcached-win32-1.4.4-14),输入 ...
  • 之前在安装memcache时有提到memcached客户端是叫memcache,其实还有一个基于libmemcached的客户端叫memcached,据说性能更好,功能也更多。
  • pymemcache支持以下功能memcached文本协议的完整实现。 使用UNIX套接字或TCP over IPv4或IPv6的连接。 套接字连接和发送/接收呼叫的可配置超时。 访问“ noreply”标志,这可以显着提高写入速度。 灵活,...
  • 与之对应的带d的memcached是建立在libmemcached的基础上,所以相对来说,memcached版本的功能更全一些。 memcache:...
  • memcached的安装与配置

    2022-05-15 09:55:27
    Memcached是一款开源、高性能、分布式内存对象缓存系统,可应用各种需要缓存的场景,其主要目的是通过降低对Database的访问来加速web应用程序。它是一个基于内存的“键值对”存储,用于存储数据库调用、API调用或...
  • memcached 1.5.6 linux

    2018-03-15 10:03:51
    4.建议您对在运行的Memcached服务进行安全加固,例如:启动绑定本地监听IP,禁止对外访问、禁用UDP协议、启用登录认证等安全功能,提高Memcached安全性; 验证方法: 修复完毕后,您可以使用以下方法来测试服务器修复...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 76,277
精华内容 30,510
热门标签
关键字:

memcached功能