March 23, 2011
遍历memcache中已缓存的key
"最近需要做一个缓存管理的功能。其中有一个需要模糊匹配memcached的key然后进行删除匹配上的key对应的数据。\n难点在于memcache 没有提供模糊匹配key删除缓存的功能,也没有提供遍历memcache key的功能。在网上search了下,\n点击10个连接有9个都是一篇文章的copy。网上最流行的方法发现key不能正确的获得。baidu google 全用上了就是没有解决。。。\n最后还是抱着试试的心态,终于把问题给解决了。废话少说。说说,我实现的代码:\n遍历memcache的可以需要有一下几个步骤:\n1、通过使用memcache 内置方法Memcache::getExtendedStats,首先获得items信息。\n最后得到的解决类似与\n1 $memcache = new Memcache(); 2 3 $all_items = $memcache-\u0026gt;getExtendedStats(\u0026#39;items\u0026#39;); 4 5 var_export($all_items); 1 array ( 2 \u0026#39;192.168.0.110:11211\u0026#39; =\u0026gt; …"
March 23, 2011
windows环境下memcache服务器使用经验
"将memcache服务器安装包解压到C:\\memcached文件夹后,使用cmd命令窗口安装。\n1\u0026gt;开始\u0026gt;运行:CMD(确定)\n2\u0026gt;cd C:\\memcached(回车)\n3\u0026gt;memcached -d install(回车 这步执行安装)\n4\u0026gt;memcached -d start(回车 这步执行启动memcache服务器,默认分配64M内存,使用11211端口)\n此时memcache服务器已经可以正常使用了。\nmemcache服务器安全:\nMemcache服务器端都是直接通过客户端连接后直接操作,没有任何的验证过程,这样如果服务器是直接暴露在互联网上的话是比较危险,轻则数据泄 露被其他无关人员查看,重则服务器被入侵,况且里面可能存在一些我们未知的bug或者是缓冲区溢出的情况,这些都是我们未知的,所以危险性是可以预见的。 为了安全起见,做两点建议,能够稍微的防止黑客的入侵或者数据的泄露。\n现在就关于修改memcache服务器配置的问题说明如下:\n1\u0026gt;用内网ip的方式提供web应用服务器调用,不允许直接通过外网调用,如将memcache服务器放 …"
March 23, 2011
freebsd+php+memcache、memcached安装和使用
"来源: http://www.lifecrunch.biz/archives/55\nMemcache 介绍 memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图 像、视频、文件以及数据库检索的结果等。Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,最初为了加速 LiveJournal 访问速度而开发的,后来被很多大型的网站采用。目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。起初作 者编写它可能是为了提高动态网页应用,为了减轻数据库检索的压力,来做的这个缓存系统。它的缓存是一种分布式的,也就是可以允许不同主机上的多个用户同时 访问这个缓存系统, 这种方法不仅解决了共享内存只能是单机的弊端,同时也解决了数据库检索的压力,最大的优点是提高了访问获取数据的速度!基于memcache作者对分布式 cache的理解和解决方案。 memcache完全可以用到其他地方 比如分布式数据库, 分布式计算等领域。\nMemcache官方网站: …"
March 23, 2011
Memcache VS Memcached VS MemcacheDB
"1、 简单讲Memcache和Memcached都讲的是同一个开源项目http://memcached.org/,只不过Memcached一般指的是后台的cache server(其实也是一个客户端的,参考php手册).而Memcache指的访问cache server的客户端。Memcached提供了两种访问协议,ASCII和Binary。\n2、 MemcacheDB=Memcached+BerkeleyDB组成的轻量的持久数据库,与前两者是不同的两个东西。\n3、作为数据库就要讲究consistency,但是Memcached是一种分布式的缓存机制,因此并不严格要求consistency,而且实际上每个memcached server之间本身不通讯也不共享,所谓的分布式是由memcached的客户端程序来决定的。一般分布式算法采用基于server节点数的取余法,这种方法以node数为基础,因此增减服务器就会造成很大hash失效问题。所以改进的算法一般采用consistent hash算法,这种算法取消了以服务器节点数作为基数的理念,而是直接对服务器的节点进行hash,然后散布 …"
March 23, 2011
Memcache的安全性
"Memcache服务器端都是直接通过客户端连接后直接操作,没有任何的验证过程,这样如果服务器是直接暴露在互联网上的话是比较危险,轻则数据泄 露被其他无关人员查看,重则服务器被入侵,因为Mecache是以root权限运行的,况且里面可能存在一些我们未知的bug或者是缓冲区溢出的情况,这 些都是我们未知的,所以危险性是可以预见的。为了安全起见,我做两点建议,能够稍微的防止黑客的入侵或者数据的泄露。\n内网访问\n最好把两台服务器之间的访问是内网形态的,一般是Web服务器跟Memcache服务器之间。普遍的服务器都是有两块网卡,一块指向互联网,一块指向内 网,那么就让Web服务器通过内网的网卡来访问Memcache服务器,我们Memcache的服务器上启动的时候就监听内网的IP地址和端口,内网间的 访问能够有效阻止其他非法的访问。\nmemcached -d -m 1024 -u root -l 192.168.0.200 -p 11211 -c 1024 -P /tmp/memcached.pid\nMemcache服务器端设置监听通过内网的192.168.0.200的ip的11211端口,占 …"
March 23, 2011
squid中日志文件详解
"4.4 日志文件路径 我将在第13章讨论所有squid的日志细节。你现在你关注的唯一事情是,squid将它的日志放在何处。默认的日志目录是squid安装位置下的logs目录。例如,假如你在./configure时没有使用–prefix=选项,那么默认的日志文件路径是/usr/local/squid/var/logs.\n你必须确认日志文件所存放的磁盘位置空间足够。在squid写日志时如果接受到错误,它会退出和重启。该行为的主要理由应引起你的注意。squid想确认你不会丢失任何重要的日志信息,特别是你的系统被滥用或者被攻击时。\nsquid有三个主要的日志文件:cache.log,access.log,store.log.第一个文件即cache.log,包含状态性的和调试性的消息。当你刚开始运行squid时,你应密切的关注该文件。假如squid拒绝运行,理由也许会出现在cache.log文件的结尾处。在正常条件下,该文件不会变得很大。也请注意,假如你以-s选项来运行squid,重要的cache.log消息也可被送到你的syslog进程。通过使用cache_log指令,你可以改变该日志文件的路 …"
March 22, 2011
Windows不重启就使环境变量修改立即生效
"在“我的电脑”-\u0026gt;“属性”-\u0026gt;“高级”-\u0026gt;“环境变量”中增加或修改环境变量后,需重启系统才能使之生效。有没有什么方法可让它即时生效呢?下面介绍一种方法:\n一.以修改环境变量“PATH”为例,修改完成后,进入DOS命令提示符,输入:set PATH=C: ,关闭DOS窗口。\n二.再次打开DOS窗口,输入:echo %PATH% ,可以发现“我的电脑”-\u0026gt;“属性”-\u0026gt;“高级”-\u0026gt;“环境变量”中设置的 PATH 值已经生效。\n不用担心DOS窗口中的修改会影响环境变量的值,DOS窗口中的环境变量只是Windows环境变量的一个副本而已。但是对副本的修改却会引发Windows环境变量的刷新,这正是我们想要的!"
March 22, 2011
iisapp 命令 弹出 iisschlp.wsc [88,25] 属性值无效 progid
"在执行iisapp.vbs时,可能会提示如下错误:\nWindows Script Component – file://C:WINDOWSsystem32iisschlp.wsc [88,25] 属性值无效 : progid\n不要汗,解决也挺简单。\n原因是为了所谓的ASP安全,卸载了 shell.applaction 组件,也就是 wshom.ocx\n重新注册即可正常运行 iisapp.vbs\n注册命令:\nregsvr32 wshom.ocx\n用完以后,可以再把这个组件卸载掉:\nregsvr32 /u /s weboffice.ocx\n有关iisapp命令的用法请参考:"
March 21, 2011
redhat6下配置网卡ip地址
"①ifconfig命令 用ifconfig命令修改后重起服务配置将会丢失 给Eth0接口设置IP地址和子网掩码广播地址并激活:ifconfig eth0 192.168.1.155 netmask 255.255.255.0 broadcast 192.168.1.255 UP 更改Eth0口的MAC地址:ifconfig eth0 hw ehter 00:40:64:c8:03:04 一个网卡添加多个IP:ifoconfig eht0:1 192.168.1.156 ifconfig eth1:192.168.157 添加网关:route add default gw 192.168.1.1 动态获取IP:ifconfig eth0 -dynamic ②netconfig工具 netconfig命令后 可以选择静态还是动态获取IP,选择静态后 IP address:IP地址 netmask:子网掩码 default gateway (IP):网关 Primary nameserver: DNS地址 如果只想配置某一项 修改IP是动态还是动态获取netconfig …"
March 21, 2011
sqlserver2000附加数据库错误823的解决方案
"一、SQL-Server附加数据库时失败。 1、异常情况:服务器在正常运行的情况下突然断电,导致数据库文件损坏,具体表现是:数据库名后面有“(置疑)”字样。 2、异常分析:关于823错误的 SQL-SERVER 中的帮助:\n错误 823 严重级别 24 消息正文 在文件 “%4!” 的偏移量 %3! 处的 %2! 过程中,检测到 I/O 错误 %1!。\n解释 Microsoft SQL Server 在对某设备进行读或写请求时遇到 I/O 错误。该错误通常表明磁盘问题。但是,错误日志中在错误 823 之前记录的其它核心消息应指出涉及了哪个设备。 3、解决办法: 在SQL-Server企业管理器中,新建同名数据库(这里假设为Test)后,停止数据库,把损坏的数据库文件Data.mdf和Test_log.LDF覆盖刚才新建数据库目录下的Data.mdf和Test_log.LDF,同时删除Test_log.LDF文件;启动数据库服务,发现数据库名Test后面有“置疑”字样。不要紧,打开SQL自带查询分析器,分别执行如下SQL语句: 第一、\nexec sp_configure ‘allow …"