GithubHelp home page GithubHelp logo

suhib97 / radish Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dhravya/radish

0.0 0.0 0.0 8.11 MB

Super fast drop-in replacement of the in memory key-value store Redis, made in Golang

Home Page: https://radish.dhr.wtf

License: MIT License

Python 21.71% Go 77.59% Dockerfile 0.70%

radish's Introduction

Radish

License: MIT
Super fast drop-in replacement of the in memory key-value store redis in golang

Contributor Covenant Try it out instantly

๐Ÿ‘€ What is this? Why?

Radish is a super fast drop-in replacement of the in memory key-value store redis, built with golang.

Why? Redis recently (Last week, as of Mar 25 2024) changed their license to a dual 'source-available' license - which means that it can't be used for commercial purposes without paying for a license. Everyone hated it. This is a problem for many companies and developers who use redis in their projects.

And, I was kinda bored and wanted to learn golang properly, so I built this.

Should you use this in production? Probably, probably not. It's not battle tested yet, but i (as a single person team) have tried to do my best to make it as reliable as possible.

I even made a cute mascot (Godis crushing Redis)

Annddd all i ask in return is a little โญ so that i dont have to rely on twitter for my dopamine hit.

Godis

๐Ÿ“œ Features

Feature Redis Radish
In-memory key-value store โœ… โœ…
Strings โœ… โœ…
Lists โœ… โœ…
Sets โœ… โœ…
Sorted sets โœ… โœ…
Hashes โœ… โœ…
Streams โœ… โŒ
HyperLogLogs โœ… โŒ
Bitmaps โœ… โŒ
Persistence โœ… โœ…
Pub/Sub โœ… โœ…
Transactions โœ… โœ…
Lua scripting โœ… โŒ
LRU eviction โœ… โŒ
TTL โœ… ๐Ÿ˜…
Clustering โœ… โŒ
Auth โœ… โŒ

Available commands

For now, these commands are available (more to come)

MISC

INFO PING FLUSHALL SHUTDOWN SAVE BGSAVE

Keys

DEL EXISTS KEYS EXPIRE TTL

Strings

SET GET APPEND INCR INCRBY DECR DECRBY MSET MGET

Lists

LPUSH LPOP RPUSH RPOP LRANGE LLEN

Hashes

HSET HGET HMSET HMGET HGETALL HDEL

Sets

SADD SMEMBERS SISMEMBER SREM

Sorted Sets

ZADD ZRANGE ZREM

Pub/Sub

SUBSCRIBE PUBLISH UNSUBSCRIBE

Transactions

MULTI EXEC DISCARD

Installation

Using docker

To get it up and running instantly, you can use the docker image

docker run -d -p 6379:6379 dhravyashah/radish

Using go

go install github.com/dhravya/radish@latest && radish

and then just build and run the binary

Using the binary

Download the binary executables from ./bin/radish.

Click here to get it instantly.

Having fun

This IS compatible with the existing redis tooling and client libraries! Try it out with some of them.

For eg.

npm i -g redis-cli

(make sure the server is running - docker is the easiest and fastest way)

โฏ rdcli
127.0.0.1:6379> incr mycounter
(integer) 1
127.0.0.1:6379> incr mycounter
(integer) 2
127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> get foo
bar
127.0.0.1:6379> get bar
(nil)

Contributing

radish is completely open source. If you want to contribute, please create an issue on the repo and I will assign the task to someone (or you).

Steps to contribute:

  1. Clone the repo
git clone https://github.com/dhravya/radish
  1. Create a new branch

  2. Make sure to build and test the code before creating a PR

go build -o ./bin
  1. Create a PR

Help and the community

If you need any help, or want to ask questions, or suggest features, please feel free to DM me on twitter - https://dm.new/dhravya or create an issue on the repo.

You can also join our Discord server where we have a community of developers ready to help you out.

License

Unlike redis, radish is licensed under the MIT license. You can use it for commercial purposes without any restrictions. Go wild!

radish's People

Contributors

dhravya avatar imgbotapp avatar xsni1 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.