Skip to content

Complete all of the necessary and basic commands firstΒ #6

@dtg-lucifer

Description

@dtg-lucifer

πŸ”Œ Server & Connection

  • PING – Check if server is alive
    Usage: PING β†’ PONG
  • ECHO <message> – Return the message
    Usage: ECHO "Hello" β†’ "Hello"
  • SELECT <index> – Switch to DB index
    Usage: SELECT 1
  • FLUSHDB / FLUSHALL – Clear keys in DB or all DBs
    Usage: FLUSHDB, FLUSHALL
  • DBSIZE – Get number of keys in current DB
    Usage: DBSIZE β†’ 3

🧠 Strings

  • SET <key> <value> / GET <key>
    Usage: SET name Alice, GET name β†’ Alice
  • DEL <key> – Delete key
    Usage: DEL name β†’ 1
  • EXISTS <key> – Check if key exists
    Usage: EXISTS name β†’ 0
  • INCR <key> / DECR <key>
    Usage: SET counter 10, INCR counter β†’ 11, DECR counter β†’ 10
  • APPEND <key> <value> – Append to string
    Usage: APPEND name " Smith" β†’ 11
  • GETSET <key> <value> – Set new value, return old
    Usage: GETSET name Bob β†’ Alice
  • MSET key1 val1 key2 val2 ... – Set multiple keys
    Usage: MSET a 1 b 2

πŸ”‘ Key Management

  • KEYS <pattern> – Match keys with glob pattern
    Usage: KEYS * β†’ [a, b, name]
  • TYPE <key> – Get value type
    Usage: TYPE name β†’ string
  • EXPIRE <key> <seconds> – Set TTL
    Usage: EXPIRE name 10
  • TTL <key> – Time to live
    Usage: TTL name β†’ 9
  • PERSIST <key> – Remove expiration
    Usage: PERSIST name

πŸ“ƒ Lists

  • LPUSH <key> <value> / RPUSH <key> <value>
    Usage: LPUSH fruits apple, RPUSH fruits banana
  • LPOP <key> / RPOP <key>
    Usage: LPOP fruits β†’ apple
  • LRANGE <key> <start> <stop> – Get sublist
    Usage: LRANGE fruits 0 -1 β†’ [banana]
  • LLEN <key> – Length of list
    Usage: LLEN fruits β†’ 1

πŸ“¦ Sets

  • SADD <key> <member> – Add to set
    Usage: SADD tags red
  • SREM <key> <member> – Remove from set
    Usage: SREM tags red
  • SISMEMBER <key> <member> – Check membership
    Usage: SISMEMBER tags blue β†’ 0
  • SMEMBERS <key> – List all members
    Usage: SMEMBERS tags β†’ [blue, green]
  • SCARD <key> – Count members
    Usage: SCARD tags β†’ 2

🧾 Hashes

  • HSET <key> <field> <value> – Set field
    Usage: HSET user name Alice
  • HGET <key> <field> – Get field
    Usage: HGET user name β†’ Alice
  • HDEL <key> <field> – Delete field
    Usage: HDEL user name
  • HGETALL <key> – Get all field-value pairs
    Usage: HGETALL user β†’ [name, Alice, age, 25]
  • HLEN <key> – Count fields
    Usage: HLEN user β†’ 2

πŸ“Š (Optional) Sorted Sets (ZSets)

  • ZADD <key> <score> <member> – Add with score
    Usage: ZADD scores 100 Alice
  • ZRANGE <key> <start> <stop> [WITHSCORES]
    Usage: ZRANGE scores 0 -1 WITHSCORES β†’ [Alice, 100]
  • ZREM <key> <member> – Remove member
    Usage: ZREM scores Alice
  • ZCARD <key> – Count members
    Usage: ZCARD scores β†’ 0

πŸ§ͺ Testing & Debug

  • Add basic REPL to accept input commands
  • Add command logging for debugging
  • Add unit tests for each data type and command

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

Status

In progress (Server)

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions