Nodejs 第四十四章(redis基本使用)

字符串的操作

sh 复制代码
SET key value [NX|XX] [EX seconds] [PX milliseconds] [GET]
  • key:要设置的键名。
  • value:要设置的值。
  • NX:可选参数,表示只在键不存在时才设置值。
  • XX:可选参数,表示只在键已经存在时才设置值。
  • EX seconds:可选参数,将键的过期时间设置为指定的秒数。
  • PX milliseconds:可选参数,将键的过期时间设置为指定的毫秒数。
  • GET:可选参数,返回键的旧值。
  1. 设置键名为 "name" 的值为 "John":

    sh 复制代码
    SET name "xiaoman"
  2. 设置键名为 "counter" 的值为 10,并设置过期时间为 60 秒:

    sh 复制代码
    SET counter 10 EX 60
  3. 只在键名为 "status" 不存在时,设置其值为 "active":

    sh 复制代码
    SET status "active" NX
  4. 只在键名为 "score" 已经存在时,将其值增加 5:

    sh 复制代码
    SET score 5 XX
  5. 设置键名为 "message" 的值为 "Hello",并返回旧的值:

    sh 复制代码
    SET message "Hello" GET
  6. 删除键名为 "name" 的键:

    sh 复制代码
    DEL name
  7. 批量删除多个键名:

    sh 复制代码
    DEL key1 key2 key3
  8. 删除不存在的键名,不会报错,返回删除的键数量为 0:

    sh 复制代码
    DEL non_existing_key

集合的操作

集合(Set)是一种无序且不重复的数据结构,用于存储一组独立的元素。集合中的元素之间没有明确的顺序关系,每个元素在集合中只能出现一次。

  1. 添加成员到集合:

    sh 复制代码
    SADD fruits "apple"
    SADD fruits "banana"
    SADD fruits "orange"
  2. 获取集合中的所有成员:

    sh 复制代码
    SMEMBERS fruits

    输出结果:

    arduino 复制代码
    1) "apple"
    2) "banana"
    3) "orange"
  3. 检查成员是否存在于集合中:

    sh 复制代码
    SISMEMBER fruits "apple"

    输出结果:

    bash 复制代码
    (integer) 1
  4. 从集合中移除成员:

    sh 复制代码
    SREM fruits "banana"

    输出结果:

    sh 复制代码
    (integer) 1
  5. 获取集合中的成员数量:

    sh 复制代码
    SCARD fruits

    输出结果:

    bash 复制代码
    (integer) 2
  6. 获取随机成员:

    sh 复制代码
    SRANDMEMBER fruits

    输出结果:

    arduino 复制代码
    "apple"
  7. 求多个集合的并集:

    sh 复制代码
    SUNION fruits vegetables

    输出结果:

    arduino 复制代码
    1) "apple"
    2) "orange"
    3) "tomato"
    4) "carrot"
  8. 求多个集合的交集:

    sh 复制代码
    SINTER fruits vegetables

    输出结果:

    arduino 复制代码
    "apple"
  9. 求多个集合的差集:

    sh 复制代码
    SDIFF fruits vegetables

    输出结果:

    arduino 复制代码
    "orange"

哈希表操作

哈希表(Hash)是一种数据结构,也称为字典、关联数组或映射,用于存储键值对集合。在哈希表中,键和值都是存储的数据项,并通过哈希函数将键映射到特定的存储位置,从而实现快速的数据访问和查找。

  1. 设置哈希表中的字段值:

    perl 复制代码
    HSET obj name "John"
    HSET obj age 25
    HSET obj email "john@example.com"
  2. 获取哈希表中的字段值:

    复制代码
    HGET obj name

    输出结果:

    arduino 复制代码
    "John"
  3. 一次设置多个字段的值:

    perl 复制代码
    HMSET obj name "John" age 25 email "john@example.com"
  4. 获取多个字段的值:

    复制代码
    HMGET obj name age email

    输出结果:

    perl 复制代码
    1) "John"
    2) "25"
    3) "john@example.com"
  5. 获取哈希表中所有字段和值:

    复制代码
    HGETALL obj

    输出结果:

    perl 复制代码
    1) "name"
    2) "John"
    3) "age"
    4) "25"
    5) "email"
    6) "john@example.com"
  6. 删除哈希表中的字段:

    复制代码
    HDEL obj age email

    输出结果:

    bash 复制代码
    (integer) 2
  7. 检查哈希表中是否存在指定字段:

    复制代码
    HEXISTS obj name

    输出结果:

    bash 复制代码
    (integer) 1
  8. 获取哈希表中所有的字段:

    复制代码
    HKEYS obj

    输出结果:

    arduino 复制代码
    1) "name"
  9. 获取哈希表中所有的值:

    复制代码
    HVALS obj

    输出结果:

    arduino 复制代码
    1) "John"
  10. 获取哈希表中字段的数量:

    复制代码
    HLEN obj

    输出结果:

    bash 复制代码
    (integer) 1

列表的操作

列表(List)是一种有序、可变且可重复的数据结构。在许多编程语言和数据存储系统中,列表是一种常见的数据结构类型,用于存储一组元素

  1. 添加元素:
arduino 复制代码
RPUSH key element1 element2 element3  // 将元素从右侧插入列表
LPUSH key element1 element2 element3  // 将元素从左侧插入列表
  • LPUSH key element1 element2 ...:将一个或多个元素从列表的左侧插入,即将元素依次插入列表的头部。如果列表不存在,则在执行操作前会自动创建一个新的列表。
  • RPUSH key element1 element2 ...:将一个或多个元素从列表的右侧插入,即将元素依次插入列表的尾部。如果列表不存在,则在执行操作前会自动创建一个新的列表。
  1. 获取元素:
arduino 复制代码
LINDEX key index  // 获取列表中指定索引位置的元素
LRANGE key start stop  // 获取列表中指定范围内的元素
  1. 修改元素:
arduino 复制代码
LSET key index newValue  // 修改列表中指定索引位置的元素的值
  1. 删除元素:
arduino 复制代码
LPOP key  // 从列表的左侧移除并返回第一个元素
RPOP key  // 从列表的右侧移除并返回最后一个元素
LREM key count value  // 从列表中删除指定数量的指定值元素
  1. 获取列表长度:
arduino 复制代码
LLEN key  // 获取列表的长度
相关推荐
岁月宁静1 小时前
深度定制:在 Vue 3.5 应用中集成流式 AI 写作助手的实践
前端·vue.js·人工智能
心易行者2 小时前
10天!前端用coze,后端用Trae IDE+Claude Code从0开始构建到平台上线
前端
saadiya~2 小时前
ECharts 实时数据平滑更新实践(含 WebSocket 模拟)
前端·javascript·echarts
fruge2 小时前
前端三驾马车(HTML/CSS/JS)核心概念深度解析
前端·css·html
百锦再2 小时前
Vue Scoped样式混淆问题详解与解决方案
java·前端·javascript·数据库·vue.js·学习·.net
烛阴2 小时前
Lua 模块的完整入门指南
前端·lua
浪里行舟3 小时前
国产OCR双雄对决?PaddleOCR-VL与DeepSeek-OCR全面解析
前端·后端
znhy@1234 小时前
CSS易忘属性
前端·css
瓜瓜怪兽亚4 小时前
前端基础知识---Ajax
前端·javascript·ajax
AI智能研究院4 小时前
(四)从零学 React Props:数据传递 + 实战案例 + 避坑指南
前端·javascript·react.js