rails3 redis应用 (brown)

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"] = 3
3

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

redis.methods.sort

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值