redis

[https://medium.com/@stockholmux/from-sql-to-redis-chapter-1-145c82e4baa0|from sql to redis]

string

type string: store a value [integer, string, …] belong a key [string]

SET connections 10
INCR connections => 11
INCR connections => 12
DEL connections
INCR connections => 1

expiring key

SET resource:lock "Redis Demo"
EXPIRE resource:lock 120

list

A list have an order

RPUSH puts the new value at the end of the list. LPUSH puts the new value at the start of the list. LLEN, LPOP, RPOP

RPUSH friends "Alice"
RPUSH friends "Bob"

LRANGE friends 0 -1 => 1) "Sam", 2) "Alice", 3) "Bob"
LRANGE friends 0 1 => 1) "Sam", 2) "Alice"
LRANGE friends 1 2 => 1) "Alice", 2) "Bob"

set

A set does not have an order but each element may only appear once.

SADD superpowers "flight"
SADD superpowers "x-ray vision"
SADD superpowers "reflexes"
SREM superpowers "reflexes"
SISMEMBER superpowers "flight" => 1
SISMEMBER superpowers "reflexes" => 1

sorted set

A sorted set is similar to a regular set, but now each value has an associated score. This score is used to sort the elements in the set.

ZADD hackers 1940 "Alan Kay"
ZADD hackers 1969 "Linus Torvalds"
ZADD hackers 1906 "Grace Hopper"
ZADD hackers 1953 "Richard Stallman"
ZRANGE hackers 2 4
1) "Richard Stallman"
2) "Linus Torvalds"

hash

type hash for tables and rows

namespace:table:id

INCR gianoauth:realm:next_user_id => 1
HSET gianoauth:realm:user:1 id 1 username "scipio" name "Stefano Scipioni" password "hash" visits 0

add an INDEX with sets: collections of strings that are unordered and cannot contain duplicates

SADD gianoauth:realm:all-users gianoauth:realms:users:1

visits

HINCRBY gianoauth:realm:user:1 visits 1 => 2

use multi exec to surround HSET and SADD

MULTI
HSET ...
HSET ...
SADD ...
EXEC

sorted set: like a set a sorted set only allows members without repeats, but also allows you to specify a score

ZADD gianoauth:realms:priceIndex 10.99 scipio

gui

fastoredis

server

sudo apt install -y redis-server redis-tools