Redix Versions Save

a very simple pure key => value storage system that speaks Redis protocol with Postgres as storage engine and more

v5.2.0

1 year ago
  • Added pub/sub commands support

v5.1.0

1 year ago
  • Added Filesystem Driver
  • Removed Windows Support

v1.10

5 years ago
  • Added FLUSHALL
  • Added FLUSHDB

v1.8

5 years ago
  • New Engine "level" based on "leveldb"
  • Internal code enhancements

v1.7

5 years ago

New Commands

  • RATELIMITSET <bucket> <limit> <seconds>, create a new $bucket that accepts num of $limit of actions per the specified num of $seconds, it will returns 1 for success.
  • RATELIMITTAKE <bucket>, do an action in the specified bucket and take an item from it, it will return -1 if the bucket not exists or it has unlimited actions $limit < 1, 0 if there are no more actions to be done right now, reminder of actions on success.
  • RATELIMITGET <bucket>, returns array [$limit, $seconds, $remaining_time, $counter] information for the specified bucket
  • KEYS [<regexp-pattern>]
  • HKEYS <HASHMAP>
  • ECHO [<arg1> <arg2> ...]
  • INFO

v1.6

5 years ago

New Commands

  • TTL <key> returns -1 if key will never expire, -2 if it doesn't exists (expired), other wise will returns the seconds remain before the key will expire.
  • HTTL <HASHMAP> <key>, the same as TTL but for HASHMAP

Engine Updates

  • Optimized badger memory usage and performance!
  • Added new engine bolt

Docker

Redix is now available on DockerHub

v1.5

5 years ago

New Commands

  • WEBHOOKSET <channel> <httpurl>
  • WEBHOOKDEL <ID>
  • WEBSOCKETOPEN <channel>
  • WEBSOCKETCLOSE <ID>
  • DBSIZE
  • GC

Examples


 
# i.e: $mykey1 = "this is my value"
$ redis-cli -p 6380 set mykey1 "this is my value"

# i.e: $mykey1 = "this is my value" and expire it after 10 seconds
$ redis-cli -p 6380 set mykey1 "this is my value" 10000

# i.e: echo $mykey1
$ redis-cli -p 6380 get mykey1

# i.e: $mymap1[x] = y
$ redis-cli -p 6380 hset mymap1 x y

# i.e: $mymap1[x] = y and expires it after 10 seconds
$ redis-cli -p 6380 hset mymap1 x y 10000

# i.e: sha512 of "test"
$ redis-cli -p 6380 encode sha512 test

# you want to notify an endpoint i.e: "http://localhost:800/new-data" that there is new data available, in other words, you want to subscribe a webhook to channel updates.
$ redis-cli -p 6380 webhookset testchan http://localhost:800/new-data

# add data to a list
# i.e: [].push(....)
$ redis-cli -p 6380 lpush mylist1 "I'm Mohammed" "I like to Go using Go" "I love coding"

# search in the list
$ redis-cli -p 6380 lsrch mylist1 "mo(.*)"

v1.4

5 years ago

In this release I introduce many new helpful commands

New Commands!

  • LSUM <LIST> (sum the members of the list "in case they were numbers")
  • LAVG <LIST> (get the avg of the members of the list "in case they were numbers")
  • LMIN <LIST> (get the minimum of the members of the list "in case they were numbers")
  • LMAX <LIST> (get the maximum of the members of the list "in case they were numbers")
  • LSRCH <LIST> <NEEDLE> (text-search using (string search or regex) in the list)
  • LSRCHCOUNT <LIST> <NEEDLE> (size of text-search result using (string search or regex) in the list)
  • SUBSCRIBE [<channel1> <channel2>], if there is no channel specified, it will be set to *
  • PUBLISH <channel> <payload>
  • ENCODE <method> <payload>, encode the specified <payload> using the specified <method> (md5, sha1, sha256, sha512, hex)
  • UUIDV4, generates a uuid-v4 string, i.e 0b98aa17-eb06-42b8-b39f-fd7ba6aba7cd.
  • UNIQID, generates a unique string.
  • RANDSTR [<size>, default size is 10], generates a random string using the specified length.
  • RANDINT <min> <max>, generates a random string between the specified <min> and <max>.
  • TIME, returns the current time in utc, seconds and nanoseconds

v1.3

5 years ago

Release notes

  • Restructured the storage directory to be suffixed with the db engine used
  • HDEL now supports removing the HMAP itself i.e hdel mymap
  • LREM now supports removing the List itself i.e lrem mylist
  • Optimized BadgerDB memory usage by enabling memory-mapping for LSM tree and FileIO in ValueLogs.

TODOs

  • GIS Commands
  • PubSub Commands
  • Aggregations ?
  • Document/JSON Commands ?