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  // 获取列表的长度
相关推荐
web1828548251214 分钟前
ctfshow-web 151-170-文件上传
前端·状态模式
轻口味19 分钟前
【每日学点鸿蒙知识】Web请求支持Http、PDF展示、APP上架应用搜索问题、APP备案不通过问题、滚动列表问题
前端·http·harmonyos
一棵开花的树,枝芽无限靠近你28 分钟前
【PPTist】表格功能
前端·笔记·学习·编辑器·ppt·pptist
马船长1 小时前
RCE-PLUS (学习记录)
java·linux·前端
学前端的小朱1 小时前
修改输出资源的名称和路径、自动清空上次打包资源
前端·webpack·打包工具
嘤嘤怪呆呆狗2 小时前
【开发问题记录】执行 git cz 报require() of ES Module…… 错误
前端·javascript·vue.js·git·vue
夜斗(dou)2 小时前
谷歌开发者工具 - 网络篇
前端·网络·chrome devtools
常常不爱学习2 小时前
CSS盒子模型(溢出隐藏,块级元素和行级元素的居中对齐,元素样式重置)
前端·css
风抽过的烟头2 小时前
Python提取字符串中的json,时间,特定字符
前端·python·json
SomeB1oody3 小时前
【Rust自学】6.3. 控制流运算符-match
开发语言·前端·rust