All Projects â†’ artemeff â†’ Redis

artemeff / Redis

Licence: mit
Redis commands for Elixir

Programming Languages

elixir
2628 projects

Projects that are alternatives of or similar to Redis

Go Rejson
Golang client for redislabs' ReJSON module with support for multilple redis clients (redigo, go-redis)
Stars: ✭ 164 (-54.06%)
Mutual labels:  redis, redis-client
Pottery
Redis for humans. 🌎🌍🌏
Stars: ✭ 204 (-42.86%)
Mutual labels:  redis, redis-client
Redis3m
A C++ Redis client
Stars: ✭ 173 (-51.54%)
Mutual labels:  redis, redis-client
Camellia
camellia framework by netease-im. provider: 1) redis-client; 2) redis-proxy(redis-sentinel/redis-cluster); 3) hbase-client; 4) others
Stars: ✭ 146 (-59.1%)
Mutual labels:  redis, redis-client
Redisclient
Boost.asio based Redis-client library.
Stars: ✭ 289 (-19.05%)
Mutual labels:  redis, redis-client
Redisdesktopmanager Mac
Redis Desktop Manager Mac OSX DMG
Stars: ✭ 149 (-58.26%)
Mutual labels:  redis, redis-client
Cachingframework.redis
Distributed caching based on StackExchange.Redis and Redis. Includes support for tagging and is cluster-compatible.
Stars: ✭ 209 (-41.46%)
Mutual labels:  redis, redis-client
Aioredis Py
asyncio (PEP 3156) Redis support
Stars: ✭ 2,003 (+461.06%)
Mutual labels:  redis, redis-client
Xredis
Redis C++ client, support the data slice storage, support redis cluster, thread-safe,multi-platform,connection pool, read/write separation.
Stars: ✭ 285 (-20.17%)
Mutual labels:  redis, redis-client
Redisson
Redisson - Redis Java client with features of In-Memory Data Grid. Over 50 Redis based Java objects and services: Set, Multimap, SortedSet, Map, List, Queue, Deque, Semaphore, Lock, AtomicLong, Map Reduce, Publish / Subscribe, Bloom filter, Spring Cache, Tomcat, Scheduler, JCache API, Hibernate, MyBatis, RPC, local cache ...
Stars: ✭ 17,972 (+4934.17%)
Mutual labels:  redis, redis-client
Redis
Type-safe Redis client for Golang
Stars: ✭ 13,117 (+3574.23%)
Mutual labels:  redis, redis-client
Fastoredis
FastoRedis is a crossplatform Redis GUI management tool.
Stars: ✭ 316 (-11.48%)
Mutual labels:  redis, redis-client
Redis Client App
A redis client application on mac, windows and linux.
Stars: ✭ 140 (-60.78%)
Mutual labels:  redis, redis-client
Redisearch Py
RediSearch python client
Stars: ✭ 152 (-57.42%)
Mutual labels:  redis, redis-client
Redis web manager
Manage your Redis instance (see keys, memory used, connected client, etc...)
Stars: ✭ 139 (-61.06%)
Mutual labels:  redis, redis-client
Node Redis
A high-performance Node.js Redis client.
Stars: ✭ 14,573 (+3982.07%)
Mutual labels:  redis, redis-client
Kangaroo
SQL client and admin tool for popular databases
Stars: ✭ 127 (-64.43%)
Mutual labels:  redis, redis-client
Csredis
.NET Core or .NET Framework 4.0+ client for Redis and Redis Sentinel (2.8) and Cluster. Includes both synchronous and asynchronous clients.
Stars: ✭ 1,714 (+380.11%)
Mutual labels:  redis, redis-client
Redisdesktopmanager Windows
RedisDesktopManager-Windows åŪ‰čĢ…包和įž–čŊ‘æ•™įĻ‹
Stars: ✭ 268 (-24.93%)
Mutual labels:  redis, redis-client
Redis Cpp17
redis-cpp17 is a cross platfrom compatible redis protocol with multithreaded c++17 client,server,proxy
Stars: ✭ 300 (-15.97%)
Mutual labels:  redis, redis-client

Redis Build Status Hex.pm


Redis commands for Elixir. If you are looking for exredis, please check out exredis branch.



Installation

Add this to the dependencies:

{:redis, "~> 0.1"}

Usage

Redis commands have a few simple types: enums, commands and primitive. Types can be required and optional, multiple and variadic, can be composite.

Situation with required and optional types is simple: required types are just arguments in function and optional values passed with the last argument — opts. opts is just a list, opts described in typespecs for each command.

Multiple arguments are arguments that contain one or more values. Multiple arguments can be optional.

Enum types in Redis is just a enumerable (usually), take a look at xx | nx enum:

iex> Redis.set("key", "value", [:xx])
["SET", [" ", "key"], [" ", "value"], [], [" ", "XX"]]

iex> Redis.set("key", "value", [:nx])
["SET", [" ", "key"], [" ", "value"], [], [" ", "NX"]]

Commands are prefixed types, commands can wrap primitive types, enums and composite types:

# command with enum inside
iex> Redis.client_kill(type: :master)
["CLIENT KILL", [], [], [" ", ["TYPE", " ", "master"]], [], []]

# command with primitive type inside
iex> Redis.client_kill(id: "identity")
["CLIENT KILL", [], [" ", ["ID", " ", "identity"]], [], [], []]

# command with composite type inside, inner type of get is: {String.t, integer()}
iex> Redis.bitfield("key", get: {"type", "offset"})
["BITFIELD", [" ", "key"], [" ", ["GET", " ", ["type", " ", "offset"]]], [], [], []]

You can see the usage for every Redis command in IEx:

iex> h Redis.set

  def set(key, value, opts \\ [])

  @spec set(
          key :: key(),
          value :: String.t(),
          opts :: [
            {:expiration, {:ex, :integer} | {:px, :integer}}
            | (:nx | :xx)
            | {:condition, :nx | :xx}
          ]
        ) :: iolist()

since: 1.0.0

Set the string value of a key

Group: string.

Or head to the documentation on hexdocs.


Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].