Redis常用命令详解

目录

    • 1. 字符串(String)操作
      • SET 和 GET
      • INCR 和 DECR
      • EXPIRE 和 TTL
    • 2. 哈希(Hash)操作
      • HSET 和 HGET
      • HMSET 和 HMGET
      • HGETALL
    • 3. 列表(List)操作
      • LPUSH 和 RPUSH
      • LRANGE
      • LPOP 和 RPOP
    • 4. 集合(Set)操作
      • SADD 和 SMEMBERS
      • SISMEMBER
      • SINTER
    • 5. 有序集合(Sorted Set)操作
      • ZADD
      • ZRANGE
      • ZRANK
    • 6. 位图(Bitmap)操作
      • SETBIT 和 GETBIT
      • BITCOUNT

1. 字符串(String)操作

字符串是Redis最基本的数据类型。

SET 和 GET

  • SET key value: 设置指定key的值
  • GET key: 获取指定key的值

例子:

SET username "张三"
GET username

输出: “张三”

INCR 和 DECR

  • INCR key: 将key中储存的数字值增1
  • DECR key: 将key中储存的数字值减1

例子:

SET counter 10
INCR counter
GET counter

输出: “11”

EXPIRE 和 TTL

  • EXPIRE key seconds: 设置key的过期时间
  • TTL key: 查看key剩余的过期时间

例子:

SET session_token "abc123"
EXPIRE session_token 3600
TTL session_token

输出: 3600 (或小于3600的值,表示剩余秒数)

2. 哈希(Hash)操作

哈希是字符串字段和字符串值之间的映射。

HSET 和 HGET

  • HSET key field value: 将哈希表key中的字段field的值设为value
  • HGET key field: 获取存储在哈希表中指定字段的值

例子:

HSET user:1 name "李四" age 30
HGET user:1 name

输出: “李四”

HMSET 和 HMGET

  • HMSET key field1 value1 field2 value2 ...: 同时将多个field-value对设置到哈希表key中
  • HMGET key field1 field2 ...: 获取所有给定字段的值

例子:

HMSET user:2 name "王五" age 25 city "北京"
HMGET user:2 name age city

输出: 1) “王五” 2) “25” 3) “北京”

HGETALL

  • HGETALL key: 获取在哈希表中指定key的所有字段和值

例子:

HGETALL user:2

输出:

  1. “name”
  2. “王五”
  3. “age”
  4. “25”
  5. “city”
  6. “北京”

3. 列表(List)操作

列表是简单的字符串列表,按照插入顺序排序。

LPUSH 和 RPUSH

  • LPUSH key value1 [value2 ...]: 将一个或多个值插入到列表头部
  • RPUSH key value1 [value2 ...]: 将一个或多个值插入到列表尾部

例子:

LPUSH mylist "world"
LPUSH mylist "hello"
RPUSH mylist "!"

LRANGE

  • LRANGE key start stop: 获取列表指定范围内的元素

例子:

LRANGE mylist 0 -1

输出: 1) “hello” 2) “world” 3) “!”

LPOP 和 RPOP

  • LPOP key: 移除并返回列表的第一个元素
  • RPOP key: 移除并返回列表的最后一个元素

例子:

LPOP mylist

输出: “hello”

4. 集合(Set)操作

集合是字符串的无序集合,元素不重复。

SADD 和 SMEMBERS

  • SADD key member1 [member2 ...]: 向集合添加一个或多个成员
  • SMEMBERS key: 返回集合中的所有成员

例子:

SADD myset "apple" "banana" "cherry"
SMEMBERS myset

输出: 1) “cherry” 2) “banana” 3) “apple”

SISMEMBER

  • SISMEMBER key member: 判断member元素是否是集合key的成员

例子:

SISMEMBER myset "apple"

输出: (integer) 1 (表示是成员)

SINTER

  • SINTER key1 [key2 ...]: 返回给定所有集合的交集

例子:

SADD set1 "a" "b" "c"
SADD set2 "b" "c" "d"
SINTER set1 set2

输出: 1) “b” 2) “c”

5. 有序集合(Sorted Set)操作

有序集合是字符串成员与浮点数分数之间的有序映射。

ZADD

  • ZADD key score1 member1 [score2 member2 ...]: 向有序集合添加一个或多个成员,或者更新已存在成员的分数

例子:

ZADD leaderboard 100 "Alice" 80 "Bob" 95 "Carol"

ZRANGE

  • ZRANGE key start stop [WITHSCORES]: 返回有序集合中指定区间内的成员

例子:

ZRANGE leaderboard 0 -1 WITHSCORES

输出:

  1. “Bob”
  2. “80”
  3. “Carol”
  4. “95”
  5. “Alice”
  6. “100”

ZRANK

  • ZRANK key member: 返回有序集合中指定成员的排名

例子:

ZRANK leaderboard "Carol"

输出: (integer) 1 (表示排名第二,因为排名从0开始)

6. 位图(Bitmap)操作

位图不是实际的数据类型,而是在字符串类型上定义的一组面向位的操作。

SETBIT 和 GETBIT

  • SETBIT key offset value: 对key所储存的字符串值,设置或清除指定偏移量上的位(bit)
  • GETBIT key offset: 对key所储存的字符串值,获取指定偏移量上的位(bit)

例子:

SETBIT user:1:flags 0 1
GETBIT user:1:flags 0

输出: (integer) 1

BITCOUNT

  • BITCOUNT key [start end]: 计算给定字符串中,被设置为1的比特位的数量

例子:

SETBIT user:1:flags 0 1
SETBIT user:1:flags 2 1
BITCOUNT user:1:flags

输出: (integer) 2

你可能感兴趣的:(Redis,redis,数据库,缓存)