rails3 redis应用 (brown)

来源:互联网 发布:jqueryplaceholder.js 编辑:程序博客网 时间:2024/05/16 07:54

2、适用场景


2.1 rails默认缓存。凡是rails需要使用缓存的地方,比如页面片段缓存等,都会用到指定的默认缓存系统。这个配置起来很简单,只需要一行代码即可,而且也不必关心rails具体在redis上是怎么实现的,自有redis_store来完成这一切。

2.2 自定义缓存。主要是以对象缓存的形式,保存在开发中认为有必要进行快速存取的数据。自定义缓存需要自己写一个类,通过redis store调用redis client的命令,来实现数据的存取。比如首页上需要调用的某些资讯数据,就不再每次都从mysql中获取,而是由后台任务定时从mysql中读取或在内容更新时读取并保存至redis缓存中。

其中要注意一点,redis保存的value值,只接受字符串格式,所以如果要通过自定义缓存保存非字符串型的数据,就需要使用Marshal进行序列化和反序列化。

2.3 任务队列。执行异步和定时任务的resque和resque-scheduler组件,使用redis作为任务队列服务器。同样,按照resque的配置说明,一行代码即可搞定。

 

目前环境在windows下

下载redis服务地址:http://download.csdn.net/detail/pengruikeji/5054697

1.启动redis服务:

     windows启动redis服务(可以下载博客上的redis.zip文件,再解压)进入cmd,系统如果是32位则进入redis/32bit目录下的输入redis-server,再回车,redis就开启了;如果是64位系统,则进入64bit目录下运行redis-server。

注意:redis-server重启,会丢失redis中的数据。

2.配置gemfile

gem "redis", "~> 3.0.1"gem 'redis-store', :git=>'git://github.com/jodosha/redis-store.git'

3.在config/initializers文件夹下,添加一个redis.rb文件内容:

$redis = Redis.new(:host => "127.0.0.1", :port => 6379)  #port你的redis服务端口#端口配置可以在redis/64bit(根据系统判定)目录下的redis.conf文件中,这行: port:6379

4.在console下普通赋值与取值,调试结果:

->$redis.set("test", "111")"ok"->$redis.get("test")"111"

5.还可以通过hset方法赋值与取值:

-> $redis.hset "test:#{id}", "name", "aaaaa""ok"->$redis.hget "test:#{id}", "name""aaaaa"

6.model调用:

  def info     str=$redis.smembers( "products" ) #取集合      if !str.blank?       return analysis(str)     else       return nil     end  end    private  def update_redis    $redis.multi do      $redis.sadd( "products", self.to_json)    end  end    #转换为json格式  def analysis str     return JSON.parse(str)  end

7.赋值方法:

->a = $redis.new()->a[:key1] = "value1""value1"->a[:key2] = "value2""value2"->a[:key1]"value1"->a["product:#{id}:id"] = 33

8.在console下,查看redis方法:

redis.methods.sort

9.例子,获取用户好友信息:

http://jimneath.org/2011/03/24/using-redis-with-ruby-on-rails.html