Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/drexed/lite-redis
Access Redis with an ActiveRecord like ORM interface
https://github.com/drexed/lite-redis
activerecord orm rails redis ruby
Last synced: about 1 month ago
JSON representation
Access Redis with an ActiveRecord like ORM interface
- Host: GitHub
- URL: https://github.com/drexed/lite-redis
- Owner: drexed
- License: mit
- Created: 2019-07-08T18:29:58.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-01-19T01:22:10.000Z (almost 2 years ago)
- Last Synced: 2024-04-25T18:42:07.822Z (9 months ago)
- Topics: activerecord, orm, rails, redis, ruby
- Language: Ruby
- Homepage: https://drexed.github.io/lite-redis
- Size: 114 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Lite::Redis
[![Gem Version](https://badge.fury.io/rb/lite-redis.svg)](http://badge.fury.io/rb/lite-redis)
[![Build Status](https://travis-ci.org/drexed/lite-redis.svg?branch=master)](https://travis-ci.org/drexed/lite-redis)Lite::Redis is a library for accessing Redis with an ActiveRecord like ORM interface.
## Installation
Add this line to your application's Gemfile:
```ruby
gem 'lite-redis'
```And then execute:
$ bundle
Or install it yourself as:
$ gem install lite-redis
## Table of Contents
* [Configurations](#configurations)
* [Pooling](#pooling)
* [Commands](#commands)
* [Callers](#callers)## Configurations
`rails g lite:redis:install` will generate the following file in your application root:
`config/initalizers/lite_redis.rb````ruby
Lite::Redis.configure do |config|
config.client = Redis.new
end
```## Pooling
Use the [Connection Pool](https://github.com/mperham/connection_pool) gem to improve connection performance. Also look into [hiredis](https://github.com/redis/redis-rb#hiredis) driver to improve performance even further lists and ranges.
```ruby
Lite::Redis.configure do |config|
config.client = ConnectionPool::Wrapper.new(size: 5, timeout: 5) { Redis.new }
end
```## Commands
* [Connection](https://github.com/drexed/lite-redis/blob/master/docs/CONNECTION.md)
* [Geo](https://github.com/drexed/lite-redis/blob/master/docs/GEO.md)
* [Hash](https://github.com/drexed/lite-redis/blob/master/docs/HASH.md)
* [Hyper Log Log](https://github.com/drexed/lite-redis/blob/master/docs/HYPER_LOG_LOG.md)
* [Key](https://github.com/drexed/lite-redis/blob/master/docs/KEY.md)
* [List](https://github.com/drexed/lite-redis/blob/master/docs/LIST.md)
* [PubSub](https://github.com/drexed/lite-redis/blob/master/docs/PUB_SUB.md)
* [Script](https://github.com/drexed/lite-redis/blob/master/docs/SCRIPT.md)
* [Set](https://github.com/drexed/lite-redis/blob/master/docs/SET.md)
* [Sorted Set](https://github.com/drexed/lite-redis/blob/master/docs/SORTED_SET.md)
* [String](https://github.com/drexed/lite-redis/blob/master/docs/STRING.md)
* [Transaction](https://github.com/drexed/lite-redis/blob/master/docs/TRANSACTION.md)## Callers
Redis commands could be via a class or instance call.
Instance access reuses a Redis connection for better performance.#### Instance
```ruby
string = Lite::Redis::String.new
string.create(:example, '123')
string.find(:example)
```#### Class
```ruby
Lite::Redis::String.create(:example, '123')
Lite::Redis::String.find(:example)
```## Development
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/drexed/lite-redis. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
## License
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
## Code of Conduct
Everyone interacting in the Lite::Redis project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/drexed/lite-redis/blob/master/CODE_OF_CONDUCT.md).