ruby on rails 的redis 使用
Posted hexudong08
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby on rails 的redis 使用相关的知识,希望对你有一定的参考价值。
redis 是非常强大的key-value数据库,性能特别高,适合大规模数据处理。不过,据说其数据存在在内存中,所以,还是尽量的少放些数据到其中吧。最好只放一个id号。
- 下载安装redis
http://redis.io/download
安装命令,大同小异
curl -O http://redis.googlecode.com/files/redis-2.2.2.tar.gz tar xzf redis-2.2.2.tar.gz cd redis-2.2.2 make cp src/redis-server src/redis-cli /usr/bin
- 启动redis服务器
或者redis-server
redis.conf的配置文件参看地址 安装目录下可以找到redis-server /path/to/redis.conf
- redis for rails
https://github.com/redis/redis-rb
gem install gem 'redis' #rails3 config.gem 'redis' #rails2
- connect redis
创建 redis.rb
$redis = Redis.new(:host => 'localhost', :port => 6379)
- 如下方法来自参考的链接
class User < ActiveRecord::Base # follow a user def follow!(user) $redis.multi do $redis.sadd(self.redis_key(:following), user.id) $redis.sadd(user.redis_key(:followers), self.id) end end # unfollow a user def unfollow!(user) $redis.multi do $redis.srem(self.redis_key(:following), user.id) $redis.srem(user.redis_key(:followers), self.id) end end # users that self follows def followers user_ids = $redis.smembers(self.redis_key(:followers)) User.where(:id => user_ids) end # users that follow self def following user_ids = $redis.smembers(self.redis_key(:following)) User.where(:id => user_ids) end # users who follow and are being followed by self def friends user_ids = $redis.sinter(self.redis_key(:following), self.redis_key(:followers)) User.where(:id => user_ids) end # does the user follow self def followed_by?(user) $redis.sismember(self.redis_key(:followers), user.id) end # does self follow user def following?(user) $redis.sismember(self.redis_key(:following), user.id) end # number of followers def followers_count $redis.scard(self.redis_key(:followers)) end # number of users being followed def following_count $redis.scard(self.redis_key(:following)) end # helper method to generate redis keys def redis_key(str) "user:#self.id:#str" end end
follow, following 关系体现在redis 中 - redis还能用于 缓存
https://github.com/jodosha/redis-store
参考:
http://redis.io/
http://jimneath.org/2011/03/24/using-redis-with-ruby-on-rails.html
https://github.com/redis/redis-rb
以上是关于ruby on rails 的redis 使用的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Windows 操作系统的 Ruby on Rails 应用程序中使用 Redis?
2020ruby和ruby on rails想说再爱你不容易:安装rails失败解决办法
如何将 Juggernaut 聊天服务器(由 ruby on rails 提供支持)与 iPhone/Android 应用程序集成以进行实时聊天?
Ruby on Rails 開發秘籍 | Ruby on Rails 快速入門
第一个CRUD的制作方法(Ruby on Rails 開發秘籍 | Ruby on Rails 快速入門)
思考Ruby On Rails的底层代码(Ruby on Rails 開發秘籍 | Ruby on Rails 快速入門)