【WEB开发】memcached的操作与应用
来源:互联网 发布:redhat centos 编辑:程序博客网 时间:2024/06/05 23:49
(1)memcached的操作相关。
一、登录memcached。使用telnet来登录memcached。命令如下所示。
>telnet 127.0.0.1 11211
一般情况下,memcached是通过ip白名单来限制访问的。而很少通过用户名+密码的方式来限制。
二、列出所有的key。命令如下。
stats items
通过上面的命令,我们一般可以等到下面的情况。
三、通过上面的item id来获取具体有哪些key。
四、我们再通过上面的key列出这个key对应的具体的值。
get jsapi_ticketwx9d757ea9296b73da通过这个命令可以查看具体key对应的值。
(2)memcached的应用。
memcached有个同步锁的机制。如下代码所示。这样可以迫使当前只有一个线程才能对当前的memcached的某一块数据进行操作。
$cacheData = $mem->get('test'); $cacheData = json_decode($cacheData, true); if ($cacheData !== false && !empty($cacheData['expire']) && !empty($cacheData['data'])) { // 取到缓存,且未到过期时间,则直接输出内容,退出 if ($cacheData['expire'] > time()) { echo json_encode($cacheData['data']); exit; } // 竞争锁,获取更新数据操作权限,竞争失败,则直接输出内容,退出 if (!$mem->add('test_lock', 'locked', 10)) { echo json_encode($cacheData['data']); exit; } else { /**伪代码: * 获取要到得到的数据 $result */ $mem->set('test', $result); // 缓存不设置过期时间,过期时间设置在数据里 $mem->delete('test_lock'); // 删除更新锁 } }memcached可以通过add函数来给某个字段设置锁,在这个锁被锁定期间,只允许某一个进程操作,另外的进程需要等到。
我们也可以通过add锁机制,来判断某个key是否已经存在memcached里了。看下面代码。
$this->cacheserver->connect();$mcState = $this->cacheserver->getConnectState();if ($mcState) {if (!$this->cacheserver->add($key, 1, $expire_time)) {$this->code = '504';return false;}} else {// mc挂了,连接异常处理}比如上面代码,如果某个key已经在memcached中存在了,就返回504。
0 0
- 【WEB开发】memcached的操作与应用
- memcached的安装与应用
- (转)memcached简介与开发应用
- Redis与Memcached应用的简单比较
- Memcached安装与操作
- Web 应用的 UML 建模与 .NET 框架开发
- Web应用的UML建模与.NET框架开发
- 【Qt】Web与本地应用的混合开发
- QT Web与本地应用的混合开发
- 【Qt】Web与本地应用的混合开发
- QT Web与本地应用的混合开发
- 高性能Web服务器Nginx的配置与部署研究(11)应用模块之Memcached模块的两大应用场景
- 高性能Web服务器Nginx的配置与部署研究(11)应用模块之Memcached模块的两大应用场景
- 高性能Web服务器Nginx的配置与部署研究(11)应用模块之Memcached模块的两大应用场景
- 高性能Web服务器Nginx的配置与部署研究(11)应用模块之Memcached模块的两大应用场景
- memcached 的java应用
- memcached 的java应用
- memcached的应用场景
- 【Activiti工作流】3.准备Activiti开发环境
- 关于代码规范(或者说代码风格)
- 欢迎使用CSDN-markdown编辑器
- 快使用阿里云的maven仓库
- 最大子序列和(枚举,分治,DP)
- 【WEB开发】memcached的操作与应用
- mac安装lnmp环境中php扩展遇到的问题
- ssh免密码登录
- 开始
- docker容器
- 第三章 上机+简答
- The declared package..does not match the expected package
- 真机上使用Hierarchy Viewer
- 行列式的概念