redis-objects
        
            Map Redis types directly to Ruby objects
           
               
           
            
        
            
             
              
      
                 
                
                
            
            
I'm using Redis objects hash_key, in order to save a lot of email addresses. The key has set to a specific model. 
  hash_key :emails, :global => true
If I use the following:
Committee.emails[1] = "mail@one.us, mail@two.com"
How long can my assigned email string become? I'd like to store a lot of addresses in this perhaps tens of thousands. Does this even make sense?
        Source: (StackOverflow)
                  
                 
            
                 
                
                
            
            
I am using the redis-objects gem to store simple info
class Purchase < ActiveRecord::Base
  include Redis::Objects
  hash_key :user_purchases, :marshal => true, :global => true  # "hash" is taken by Ruby
  def self.add_user_end(fb_id,item_id)
    if self.user_purchases[fb_id]
      a = Array.new
      a << candidate_id 
      self.user_purchases[fb_id] = a
    else
      new_a = self.user_purchases[fb_id]
      new_a << item_id
      self.user_purchases[fb_id] = new_a
    end
  end
end
I'm creating a method to collect user_purchases as a hasy_key, keyed by a users fb id. I would imply like to see a collection of ids when I use Purchase.user_purchases["2"] => [1,23,563,2]
I am running into a problem with Redis::Object where I can only save this as a string: Why?
1.9.3-p125 :050 > Purchase.user_purchases["6"].class
 => String 
1.9.3-p125 :051 > Purchase.user_purchases["6"]
 => "\u0004\b[\u0006I\"\v543555\u0006:\u0006ET" 
Answer:
My Initialization file was missing require 'redis/list'
require 'redis'
require 'redis/objects'
require 'redis/hash_key'
require 'redis/list'
Redis.current = Redis.new(:host => '127.0.0.1', :port => 6379)
        Source: (StackOverflow)
                  
                 
            
                 
                
                
            
            
I'm trying to understand how to use the Redis-Objects gem. 
My goal is to Count the number of Purchase model instances by customer_id. For example, a customer loads a page and I would like to see the number of purchases by that Customer. To be clear the Purchase model has a customer_id column. Because of the volume of hits, I would like to use redis to relieve pressure on my server.
Does one use set to accomplish this task? How does one use the redis-objects gem to accomplish this task?
        Source: (StackOverflow)
                  
                 
            
                 
                
                
            
            
I am currently developing a membership website that include a view counter. Past experience says, having view counters in SQL is costly. I in fact kept away from view counters but today its not an option.
The project uses
- Rails 4.0.2
- Redis Objects gem
- For demonstration I am hoping to use Heroku with Redis To Goplugin
- Currently the counter is based on PG ( Active Record )
- Redis Objects have been used with AR to count ( but how to save to AR profiles table ? )
Need / Thinking of achieving
- Counts in Redis and periodically stores to PG table possibly using a Rake + schedule task
- Efficiency
Problem
- I can't figure out how to do a query the Redis DB to find all Profile objects in it. 
If I could get this list of objects I can write a rake task to iterate through each item and save/update the modal value to the database.
After some search KEYS profile:* seems to be the only way to get all the profile values saved to the database. Then from it I have to manually fetch objects and update the values.
Question
- Is using keysto find the keys and then the objects sensible ( in terms of efficiency ) to use in a scheduled task possibly once a day.
- Is there a way to fetch all Profileobjects directly from Redis db like we can doProfile.allinActiveRecord?
- Any suggestions to implement a counter is highly appreciated ( even if not Redis based )
-
class Profile < ActiveRecord::Base
  # To handle the profile counter
  include Redis::Objects
  counter :tviews
  # Associations
  belongs_to  :user
  # Other attributes
end
profiles_controller.rb
class ProfilesController < ApplicationController
  def public 
    @profile.tviews.increment
    # @profile.save # Save of AR based counting
  end
end
In the SLIM
    p.text-center#profile-counter
      | Views - 
      = @profile.tviews.value + @profile.views
        Source: (StackOverflow)
                  
                 
            
                 
                
                
            
            
I am using Redis with my ruby on rails application, To map Ruby object with Redis using redis-objects, dm-core and dm-redis-adapter. Below are the code snipts
Gemfile
gem 'redis-objects'
gem "dm-core", "~> 1.2.1"
gem "dm-redis-adapter"
/config/initializers/redis.rb
// LOCAL REDIS SERVER
Redis.current = Redis.new(:host => '127.0.0.1', :port => 6379)
// REMOTE REDIS SERVER
#Redis.current = Redis.new(:host => '<VM IP>', :port => <VM PORT>, :password => '<PASSWORD>')
Model.rb
DataMapper.setup(:default, {:adapter  => "redis"})
class User
  include Redis::Objects
  include DataMapper::Resource
  include ActiveModel::Validations  
  include ActiveModel::Conversion  
  # datamapper fields, just used for .create
  property :id, Serial
  property :name, String
  property :email, String
  property :des, Text
  def id
    1
  end
end
User.finalize
It's working fine for local redis server. Why app always pointing local redis, Even when providing remote host and port?
SOLVED: checkout my answer.
        Source: (StackOverflow)
                  
                 
            
                 
                
                
            
            
I have a redis-object's list. Each object in the list needs to have another list. 
class Parent
  include Redis::Objects
  list :children, marshal: true
end
 
class children
  include Redis::Objects
end
 
The above code samples just highlight the relationship. They do include other things like attr_accessors etc.
My issue arrives when I call children on an instance of the parent, such as in the example below:
p = Parent.new
Redis::List.new('some_key', marshal: true) << p
p.children
=> nil
I have a working example using an active record model with the list added to it. However including it on a redis-object seems to give me issues.
Do I need to handle the situation manually in the way it is described in part two of the redis-object documentation, or do I some how have to create the redis-objects list on creation of the parent object? My thoughts were that this creation was implicit
        Source: (StackOverflow)