`
netfork
  • 浏览: 486055 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

memcached+timed_fragment_cache

    博客分类:
  • Ruby
阅读更多

1、memcached

(1)windows下memcached的下载与安装

下载地址:http://jehiah.cz/projects/memcached-win32/
下文引用部分摘自:http://jackyoo8.iteye.com/blog/195857

引用
Windows下的Memcache安装:
1. 下载memcache的windows稳定版,解压放某个盘下面,比如在c:\memcached
2在终端(也即cmd命令界面)下输入 ‘c:\memcached\memcached.exe -d install’ 安装
3 再输入: ‘c:\memcached\memcached.exe -d start’ 启动。NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了/
4.下载php_memcache.dll,请自己查找对应的php版本的文件
5. 在C:\winnt\php.ini 加入一行 ‘extension=php_memcache.dll’
6.重新启动Apache,然后查看一下phpinfo,如果有memcache,那么就说明安装成功!

memcached的基本设置:

Java代码

   1.   -p 监听的端口 
   2.   -l 连接的IP地址, 默认是本机e 
   3.   -d start 启动memcached服务 
   4.   -d restart 重起memcached服务 
   5.   -d stop|shutdown 关闭正在运行的memcached服务 
   6.   -d install 安装memcached服务PHPChina  
   7.   -d uninstall 卸载memcached服务 
   8.  -u 以的身份运行 (仅在以root运行的时候有效) 
   9.  -m 最大内存使用,单位MB。默认64MB 
  10.   -M 内存耗尽时返回错误,而不是删除项 
  11. -c 最大同时连接数,默认是1024 
  12. -f 块大小增长因子,默认是1.25PHPChina  
  13.   -n 最小分配空间,key+value+flags默认是48 
  14.  -h 显示帮助 

    -p 监听的端口
    -l 连接的IP地址, 默认是本机e
    -d start 启动memcached服务
    -d restart 重起memcached服务
    -d stop|shutdown 关闭正在运行的memcached服务
    -d install 安装memcached服务PHPChina
    -d uninstall 卸载memcached服务
   -u 以的身份运行 (仅在以root运行的时候有效)
   -m 最大内存使用,单位MB。默认64MB
    -M 内存耗尽时返回错误,而不是删除项
  -c 最大同时连接数,默认是1024
  -f 块大小增长因子,默认是1.25PHPChina
    -n 最小分配空间,key+value+flags默认是48
   -h 显示帮助



Memcache环境测试:
运行下面的php文件,如果有输出This is a test!,就表示环境搭建成功。开始领略Memcache的魅力把!
Java代码

   1. < ?php 
   2. $mem = new Memcache; 
   3. $mem->connect(”127.0.0.1″, 11211); 
   4. $mem->set(’key’, ‘This is a test!’, 0, 60); 
   5. $val = $mem->get(’key’); 
   6. echo $val; 
   7. ?> 

< ?php
$mem = new Memcache;
$mem->connect(”127.0.0.1″, 11211);
$mem->set(’key’, ‘This is a test!’, 0, 60);
$val = $mem->get(’key’);
echo $val;
?>

 

想使用windows下可以配置的memcached,可以参考下面的链接。

http://www.iteye.com/topic/24505

 

memcache_client的下载地址:

http://github.com/mperham/memcache-client/blob/dc0734354fd5b55a8755a7933927f94a321bc7dd/performance.txt

 


(2)rails环境配置

 

下文摘自:http://thegiive.iteye.com/blog/79543

 

這篇介紹如何將 Memcached 跟 Rails 做一個結合,先介紹一下 Memcached 這個著名的套件。Memcached 是一個分散式的 Memory Object 架構,最早是 Life Journal Team 為了加快速度而開發的套件。 他可以啟動許多 Deamon 來將所有其他 Client 的 Object 都集合起來,並且做到多機器同步化的工作。他最大的優點是在於不需要考慮資料 ACID,所以速度方面相當的快。

當然,我們可以使用 Database 去做到一模一樣的事情,但是其實 Database 在 ACID 上面已經付出太多 Overhaed。如果今天需要操作的東西,是一些像是 Cache ,Session 之類真的不見就算了的東西 的話,你可以考慮使用效率比 Database 快的 Memcached。目前已經有相當多的網站 使 用 Memcached 的技術,可說是相當成熟。並且在 Web Server 使用考量上,Web Server 通常使用資源是高 CPU 低 Memory ,而 Memcached 是低 CPU 高 Memory 的使用方式,兩者可以結合彼此優缺點,讓 Web Server 跟 Memcached 跑在同一台機器上面來避免浪費資源使用率。

以 Ruby on Rails 來看,Memcached 可以用在

這三個用途。

我 目前使用他都是在 Session Store 這個部分,他可以將 Multi Backend Application Server 的 Session 存放放在同一處,當然可以提高Rails Scaling 的部分。而在實做上面,Memcache 沒有設定檔。要在 Master 啟動一個 2G Memory,listen 在 1.2.3.4 ,port 11211 的 Memcache Deamon 是這樣啟動的

# ./memcached -d -m 2048 -l 1.2.3.4 -p 11211
Ruby 要使用 Memcached 是非常的簡單,只要用 Gem 安裝 Ruby 的 Memcached Client 即可。

這裡有兩個選擇,一個是出現在很多書上面的 ruby memcache ,也是比較老牌的選擇。
gem i ruby-memcache
但是現在還有更新的選擇, Robotcoop 所開發的 Ruby Memcached Client AP

# gem install memcache-client

要 選擇其實是很容易的,因為兩者的 API 實做都一模一樣,應該說 memcached-client 遵照 ruby-memcached 的 API,但是 memcached-client 效能比 ruby-memcached 來得好,所以請用 memcached-client 吧。

要在 Rails 上面使用 Memcached 來當作 Session Handler 也相當的簡單,將 session store 設為 memcached 即可。你可以在 enviroment.rb 加入
require

 

'memcache'



memcache_options = {
  :compression => false,
  :debug => false,
  :namespace => "app-#{RAILS_ENV}",
  :readonly => false,
  :urlencode => false
}
memcache_servers = [ 'localhost:11211' ]





Rails::Initializer.run do |config|
....


 config.action_controller.session_store = :mem_cache_store
  config.action_controller.cache_store = :mem_cache_store, memcache_servers, memcache_options
end


...


cache_params = *([memcache_servers, memcache_options].flatten)
CACHE = MemCache.new *cache_params
ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS.merge!({ 'cache' => CACHE })



其實 Rails 對於 Scale 的準備還算是相當的完整,很多地方都有相當簡單方便的實做。



延伸閱讀




2、timed_fragment_cache

git上的通通不能用了,有个尸体:http://github.com/rlivsey/timed_fragment_cache/tree/master
想找能用的,需要从这个网址下载:http://www.ruzee.com/blog/2008/07/timed_fragment_cache-on-rails-21/    注意找到“Download version 0.2 ”下载即可。

使用方法:

controller中,

    when_fragment_expired 'homepage_lines', 30.minutes.from_now do

 view中,

<% cache('homepage_lines') do -%>

 

 

参照以上内容,就可以实现windows平台下基于时间过期策略的片断缓存。

 

最后,提供一个rails中的各种缓存方案的链接。

真实世界中的 Rails: Rails 中的缓存:

http://www.ibm.com/developerworks/cn/web/wa-rails1/

 

memcached完全剖析:

http://blog.csdn.net/starxu85/archive/2008/09/30/3002436.aspx

 

 

 

全文完

 

------------------------

 

分享到:
评论

相关推荐

    nginx+tomcat+memcached_SH

    nginx+tomcat+memcached_SH nginx+tomcat+memcached_SH nginx+tomcat+memcached_SH nginx+tomcat+memcached_SH

    memadmin+php_memcached+memcached1.4.5

    标题中的"memadmin+php_memcached+memcached1.4.5"暗示了这是一个关于内存缓存管理系统、PHP扩展以及memcached服务器的组合。这里的关键技术包括`memadmin`(一个用于管理memcached的工具)、`php_memcached`(PHP...

    memcached_functions_mysql

    **标签解析:** "memcached_functions_mysql" 这个标签进一步强调了主题,说明这个压缩包包含了与Memcached和MySQL交互的相关函数或脚本。 **压缩包内容:** "memcached_functions_mysql-1.1" 可能是一个特定版本的...

    java_memcached-release_2.6.6.zip

    memcache客户端jar包: 1,java_memcached-release_2.6.6.jar 2,commons-pool-1.5.6.jar 3,slf4j-api-1.6.1.jar 4,slf4j-simple-1.6.1.jar

    java_memcached-release_2.0.1.jar

    java_memcached-release_2.0.1.jarjava_memcached-release_2.0.1.jar

    springboot+memcached+mybatis+shiro+webservice聚合工程架构

    此套架构整合了springboot+memcached+mybatis+shiro+webservice的聚合式架构,内有具体代码,望大家一起学习交流,写博客因为太懒不愿意写 直接传了。请把解压后的java_memcached-release_2.6.3.jar和commons-pool-...

    memcached-1.2.1-win32.zip 和 java_memcached-release_1.6.zip

    `memcached-1.2.1-win32.zip` 提供了Memcached服务端,而`java_memcached-release_1.6.zip` 提供了Java客户端,使得开发者能够轻松地在Java环境中集成和使用Memcached。学习和掌握这些资源,将有助于构建更加快速、...

    Nginx+Tomcat+MemCached_集群配置

    标题 "Nginx+Tomcat+Memcached 集群配置" 涉及到的是一个常见的高性能 web 应用架构,它结合了 Nginx、Tomcat 和 Memcached 这三款强大的技术来实现高可用性和负载均衡。Nginx 是一款高效的静态资源服务器和反向代理...

    memcached-1.2.6+php_memcache-5.3-nts/ts

    标题 "memcached-1.2.6+php_memcache-5.3-nts/ts" 提供的信息表明,这个压缩包包含的是与 memcached 和 PHP 的 memcache 扩展相关的组件,具体版本为 memcached 1.2.6 和 php_memcache 5.3。这个组合通常用于在 PHP ...

    memcached+tomcat的session共享

    "memcached+tomcat的session共享"就是解决这个问题的一种常见方案。 Memcached是一款高性能、分布式的内存对象缓存系统,它能够将数据存储在内存中,从而提高数据访问速度。Tomcat则是一款广泛使用的Java应用服务器...

    memcached-1.2.5+php_memcache-5.2

    `memcached`是一个高性能、分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,通过将数据和对象存储在内存中,以加快读取速度。它最初由Dustin S. McWharter开发,并在2003年开源。`memcached`支持多种...

    Memcached_Session_Manager jar

    **Memcached_Session_Manager jar** 是一个专为Tomcat服务器设计的组件,用于管理Web应用程序的会话(Session)。会话管理在多服务器环境,特别是集群环境中尤为重要,因为需要确保用户在集群中的任何一台服务器上都...

    java_memcached-release_2.5.1

    Memcached Cache现在已经被大家广泛使用,但是千万不要认为对Cache的操作是低损耗的,要知道这类集中式Cache对Socket连接数(会牵涉到linux操作系统文件句柄可用数),带宽,网络IO都是有要求的,有要求就意味着会有...

    memcached+tomcat7共享session所需要的jar包

    标题中的“memcached+tomcat7共享session所需要的jar包”是指使用Memcached作为分布式缓存系统,实现Tomcat7服务器间的Session共享。这通常是为了在集群环境中解决Session复制或粘滞会话的问题,提高Web应用的可扩展...

    java_memcached-release_2.6.6.rar

    Java Memcached客户端是一个高效、轻量级的缓存系统,用于存储和检索数据,通过减少数据库的负载来提高Web应用程序的性能。这个“java_memcached-release_2.6.6.rar”压缩包文件包含了用于与Memcached服务器通信的...

    java_memcached-release_2.6.3.rar 客户端所有包

    Java Memcached客户端是Java开发者用来与Memcached分布式内存缓存系统进行交互的工具。这个`java_memcached-release_2.6.3.rar`压缩包包含了用于Java客户端开发所需的全部依赖库,使得开发者能够轻松地在Java应用中...

    memcached+tomcat7实现session共享的jar包

    memcached+tomcat7 session共享用到的jar包:javolution-5.5.1.jar,kryo-1.03.jar,kryo-serializers-0.10.jar,memcached-2.5.jar,memcached-session-manager-1.5.1.jar,memcached-session-manager-tc7-1.5.1.jar,...

Global site tag (gtag.js) - Google Analytics