Redis的常用命令

Sting 类型

  1. **SET命令:**将指定的key设置为指定的值

    • 用法:SET key value [EX seconds] [PX milliseconds] [NX|XX]
    • 示例:SET name "John" // 将key为name的值设置为"John"

    解释:SET命令用于在Redis中设置指定key的值。如果key已经存在,则会覆盖原来的值;如果key不存在,则会创建一个新的key-value对。该命令还可以设置key的过期时间、设置key不存在时才进行操作的条件等。

  2. **GET命令:**获取指定key的值

    • 用法:GET key
    • 示例:GET name // 获取key为name的值

    解释:GET命令用于在Redis中获取指定key的值。如果key不存在,则返回nil。

  3. **INCR命令:**将指定key的值增加1

    • 用法:INCR key
    • 示例:SET count 10; INCR count // 将key为count的值增加1,结果为11

    解释:INCR命令用于对key的值进行自增操作。如果key不存在,则会将其值设置为1。

  4. **DECR命令:**将指定key的值减少1

    • 用法:DECR key
    • 示例:SET count 10; DECR count // 将key为count的值减少1,结果为9

    解释:DECR命令用于对key的值进行自减操作。如果key不存在,则会将其值设置为-1。

  5. **APPEND命令:**将指定的值追加到指定key的末尾

    • 用法:APPEND key value
    • 示例:SET message "Hello"; APPEND message ", World!" // 将", World!"追加到key为message的值的末尾

    解释:APPEND命令用于将指定的值追加到指定key的末尾,返回追加后的字符串的长度。

  6. **STRLEN命令:**获取指定key的值的长度

    • 用法:STRLEN key
    • 示例:SET message "Hello"; STRLEN message // 获取key为message的值的长度,结果为5

    解释:STRLEN命令用于获取指定key的值的长度。如果key不存在,则返回0。

  7. **SETEX命令:**将指定key设置为指定的值,并设置过期时间

    • 用法:SETEX key seconds value
    • 示例:SETEX token 3600 "abcd1234" // 将key为token的值设置为"abcd1234",并设置过期时间为3600秒

    解释:SETEX命令用于在Redis中设置指定key的值,并设置过期时间。过期时间单位为秒。

  8. **MSET命令:**同时设置多个key的值

    • 用法:MSET key1 value1 [key2 value2 ...]
    • 示例:MSET username "John" age 30 // 同时设置key为username的值为"John"和key为age的值为30

    解释:MSET命令用于同时设置多个key的值。可以一次性设置多个key-value对。

  9. **MGET命令:**同时获取多个key的值

    • 用法:MGET key1 [key2 ...]
    • 示例:MGET username age // 获取key为username的值和key为age的值

    解释:MGET命令用于同时获取多个key的值。返回一个包含所有key对应值的列表。

  10. **EXPIRE命令:**设置key的过期时间

    • 用法:EXPIRE key seconds
    • 示例:EXPIRE username 3600 // 设置key为username的过期时间为3600秒

    解释:EXPIRE命令用于设置key的过期时间,单位为秒。设置后,经过指定的秒数后,key将自动删除。

hash

  1. HSET命令

    • 用途:设置hash中指定字段的值,如果字段不存在,则创建字段并设置值。
    • 示例:HSET myhash field1 value1
      • 在名为myhash的hash中,创建或更新字段field1,并设置为value1。
  2. HGET命令

    • 用途:获取hash中指定字段的值。
    • 示例:HGET myhash field1
      • 获取名为myhash的hash中字段field1的值。
  3. HGETALL命令

    • 用途:获取hash中所有字段和值。
    • 示例:HGETALL myhash
      • 获取名为myhash的hash中所有字段和值。
  4. HDEL命令

    • 用途:删除hash中的指定字段。
    • 示例:HDEL myhash field1
      • 删除名为myhash的hash中的字段field1。
  5. HEXISTS命令

    • 用途:检查hash中是否存在指定字段。
    • 示例:HEXISTS myhash field1
      • 检查名为myhash的hash中是否存在字段field1。
  6. HKEYS命令

    • 用途:获取hash中所有字段的列表。
    • 示例:HKEYS myhash
      • 获取名为myhash的hash中所有字段的列表。
  7. HVALS命令

    • 用途:获取hash中所有字段的值的列表。
    • 示例:HVALS myhash
      • 获取名为myhash的hash中所有字段的值的列表。
  8. HLEN命令

    • 用途:获取hash中字段的数量。
    • 示例:HLEN myhash
      • 获取名为myhash的hash中字段的数量。
  9. HMSET命令

    • 用途:设置hash中多个字段的值。
    • 示例:HMSET myhash field1 value1 field2 value2
      • 在名为myhash的hash中,设置字段field1的值为value1,字段field2的值为value2。
  10. HMGET命令

    • 用途:获取hash中多个字段的值。
    • 示例:HMGET myhash field1 field2
      • 获取名为myhash的hash中字段field1和field2的值。

List

  1. **LPUSH:**将一个或多个值插入列表的头部

    • 格式:LPUSH key value1 [value2 ...]
    • 示例:LPUSH mylist "hello",将值"hello"插入名为mylist的列表的头部
  2. **RPUSH:**将一个或多个值插入列表的尾部

    • 格式:RPUSH key value1 [value2 ...]
    • 示例:RPUSH mylist "world",将值"world"插入名为mylist的列表的尾部
  3. **LPOP:**移除并返回列表的头部元素

    • 格式:LPOP key
    • 示例:LPOP mylist,从名为mylist的列表的头部移除并返回元素
  4. **RPOP:**移除并返回列表的尾部元素

    • 格式:RPOP key
    • 示例:RPOP mylist,从名为mylist的列表的尾部移除并返回元素
  5. **LLEN:**获取列表的长度

    • 格式:LLEN key
    • 示例:LLEN mylist,获取名为mylist的列表的长度
  6. **LRANGE:**获取列表指定范围内的元素

    • 格式:LRANGE key start stop
    • 示例:LRANGE mylist 0 2,获取名为mylist的列表中索引从0到2的元素
  7. **LINDEX:**获取列表指定索引位置的元素

    • 格式:LINDEX key index
    • 示例:LINDEX mylist 1,获取名为mylist的列表中索引为1的元素
  8. **LREM:**从列表中删除指定数量的某个元素

    • 格式:LREM key count value
    • 示例:LREM mylist 2 "hello",从名为mylist的列表中删除2个值为"hello"的元素
  9. **LSET:**设置列表中指定索引位置的元素的值

    • 格式:LSET key index value
    • 示例:LSET mylist 1 "world",将名为mylist的列表中索引为1的元素值设置为"world"
  10. **LINSERT:**在列表中指定元素的前面或后面插入一个新元素

    • 格式:LINSERT key [BEFORE|AFTER] pivot value
    • 示例:LINSERT mylist BEFORE "world" "hello",在名为mylist的列表中值为"world"的元素前面插入新元素"hello"

Redis事务命令

  1. **MULTI命令:**表示事务开始,用于标记一个事务的起始点。 示例:

    复制代码
    MULTI
    SET key1 value1
    SET key2 value2
    EXEC

    解释:MULTI命令用于开启事务,之后所有的命令都会被缓存起来,直到EXEC命令被调用才会被执行。

  2. **EXEC命令:**表示事务执行,用于执行事务中缓存的命令。 示例:

    复制代码
    MULTI
    SET key1 value1
    SET key2 value2
    EXEC

    解释:EXEC命令会执行MULTI命令之后缓存的所有命令。

  3. **DISCARD命令:**表示事务取消,用于取消事务的执行并清空事务队列。 示例:

    复制代码
    MULTI
    SET key1 value1
    DISCARD

    解释:DISCARD命令会取消事务的执行,并清空事务队列,事务中的所有操作都将被忽略。

  4. **WATCH命令:**用于在事务执行前监视给定的键,如果键在事务执行期间被修改,事务将发生中断。 示例:

    复制代码
    WATCH key1
    MULTI
    SET key1 value1
    EXEC

    解释:WATCH命令用于监视键key1,如果在EXEC执行之前key1被修改,则事务会被中断。

总结

  1. 字符串命令:

    • SET key value:设置键的值。
    • GET key:获取键的值。
    • DEL key:删除键。
    • INCR key:将键的值加1。
    • APPEND key value:将值追加到键的值后面。
  2. 哈希命令:

    • HSET key field value:在哈希中设置字段的值。
    • HGET key field:获取哈希中字段的值。
    • HDEL key field:删除哈希中的字段。
    • HGETALL key:获取哈希中的所有字段值。
    • HKEYS key:获取哈希中的所有字段。
  3. 列表命令:

    • LPUSH key value:将值推入列表的左侧。
    • RPUSH key value:将值推入列表的右侧。
    • LPOP key:从列表的左侧弹出一个值。
    • RPOP key:从列表的右侧弹出一个值。
    • LRANGE key start stop:获取列表中指定范围的值。
  4. 集合命令:

    • SADD key member:将成员添加到集合中。
    • SREM key member:从集合中移除成员。
    • SMEMBERS key:获取集合中的所有成员。
    • SINTER key1 key2:获取两个集合的交集。
    • SISMEMBER key member:检查成员是否在集合中。
  5. 有序集合命令:

    • ZADD key score member:将成员添加到有序集合中。
    • ZREM key member:从有序集合中移除成员。
    • ZRANGE key start stop:获取有序集合中指定范围的成员。
    • ZRANK key member:获取成员在有序集合中的排名。
    • ZSCORE key member:获取成员在有序集合中的分数。
  6. 其他命令:

    • SELECT index:选择数据库。
    • EXPIRE key seconds:设置键的过期时间。
    • TTL key:获取键的剩余过期时间。
    • SAVE:将数据保存到磁盘。
    • FLUSHALL:清空所有数据库。
相关推荐
踩坑小念35 分钟前
Redis线程模型
数据库·redis·缓存
满目82838 分钟前
【Ubuntu系统实战】一站式部署与管理MySQL、MongoDB、Redis三大数据库
数据库·redis·mysql·mongodb·ubuntu·数据库布置
GreatSQL1 小时前
GreatSQL优化技巧:手动实现谓词下推
数据库
小云数据库服务专线1 小时前
GaussDB 数据库架构师修炼(十八) SQL引擎-计划管理-SPM
数据库·数据库架构·gaussdb
创思通信1 小时前
4G模块 EC200通过MQTT协议连接到阿里云
数据库·物联网·mqtt·阿里云·at·ec200a
DDC楼宇自控与IBMS集成系统解读2 小时前
BA 楼宇自控系统 + AI:重构楼宇设备管理的 “智能决策” 体系
大数据·网络·数据库·人工智能·3d·重构
JIngJaneIL2 小时前
家庭事务管理系统|基于java和vue的家庭事务管理系统设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·家庭事务管理系统
qq_396242982 小时前
【tomcat管理session,配置redis来管理session实现多个tomcat共享,原因是tomcat配置redis配置账号或者密码错误等】
java·redis·tomcat
Jacob02343 小时前
为什么那么多人说大数据只是写SQL?
数据库·后端·sql
小蒜学长3 小时前
家庭财务规划与投资系统的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端