redis的操作很多的,以前看到一个比较全的博客,但是现在找不到了。查个东西搜半天,下面整理一下php处理redis的例子,个人觉得常用一些例子。下面的例子都是基于php-redis这个扩展的。
‘nosql’ 类别下的博文
session可以存放在文件中,可以存放在memcache中,本以为session是不可以存放到redis中了,今天尝试了一下,竟然可以。session存文件是没问题的,存memcache也是没有问题的,这个我测试过,请参考:web集群时利用memcache来同步session。但是redis是部分是走内存,部分是走文件的。我在想redis是怎么对待session的呢,费话不多了,看下文。
redis和memcache比较像的,memcache可以实现服务器的集群,redis肯定也是可以的。下面在一台机,实现redis主从复制。
redis和memcache非常像的,都是key,value的方式,将数据存放内存中。最近在学习redis,在网上看了一些这方面的资料,有三种观点:
1,redis读写内存比memcache快
2,memcache读写内存比redis快
3,memcache读写内存比redis快,但是redis整体性能优于memcache
所以我做了一下测试。关于redis和memcache的安装,请参考
一,什么是redis
redis是一个key-value存储系统。 和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集 合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis 支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改 操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
一,在说出我的困惑时,先罗嗦一下memcache
memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,最初为了加速 LiveJournal 访问速度而开发的,后来被很多大型的网站采用。目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。起初作者编写它可能是为了提高动态网页应用,为了减轻数据库检索的压力,来做的这个缓存系统。它的缓存是一种分布式的,也就是可以允许不同主机上的多个用户同时访问这个缓存系统, 这种方法不仅解决了共享内存只能是单机的弊端,同时也解决了数据库检索的压力,最大的优点是提高了访问获取数据的速度!基于memcache作者对分布式 cache的理解和解决方案。 memcache完全可以用到其他地方 比如分布式数据库, 分布式计算等领域。
二,memcahce的key如何关理,更合适
一,memcache分布式的解释
memcache分布式,说白一点就是在很多台机子上装memcache,同时使用他们。
二,启动多个memcached进程,可以在一台机子上,可以在多台机子上
/usr/local/bin/memcached -d -m 20 -u zhangy -p 12000 -P ./memcached.pid
/usr/local/bin/memcached -d -m 20 -u zhangy -p 13000 -P ./mem.pid
我在同一台机子上,启动了二个memcached进程
[zhangy@BlackGhost drochilli]$ ps -e |grep memcache
17904 ? 00:00:00 memcached
17906 ? 00:00:00 memcached
表明已经启动了二个进程
当memcached服务器端装好了,相应的调用端也配置好了,但是我们怎么知道memcache使用内存的,以及他是怎么工作的呢?接下来,我把我对memcache的监控的过程根大家分享一下:
1.配置监控文件
cd memcache-2.2.4
[zhangy@BlackGhost memcache-2.2.4]$ ls |grep .php
example.php
memcache.php
run-tests.php
把memcache.php文件,cp到你的web服务器上面
一,安装所要的软件
wget http://www.monkey.org/~provos/libevent-1.2.tar.gz #下载libevent
下面是下载memcache服务哭端memcached和php的扩展memcache
http://pecl.php.net/package/memcached
http://pecl.php.net/package/memcache
二,memcached服务器端的安装
1.查看是否已经安装了libevent,一般情况下,装系统的时候libevent就会装进去的。
ls -al /usr/lib | grep libevent