当前位置: 首页 > java >正文

第二十周:Redis(二)

 本周继续介绍Redis数据库,主要从Redis的多样数据结构入手。Redist数据库包含多种常用的数据结构(String,Set,Hash,List,Zset等),正是因为这些多样的数据结构,使得Redis具备强大的功能,下面来具体介绍一下这些数据结构的使用。

1.String

   String类型与Java中的String类型差不多,在Redis中String类型主要可用于实际开发中的计数器、缓存简单值等功能,当然也可以用于存储文本、数字等内容。下面介绍一下它的常见命令基本操作:
SET key value:设置键值
GET key:获取键值
DEL key:删除键
EXISTS key:检查键是否存在
EXPIRE key seconds:设置过期时间
TTL key:查看剩余时间
数值操作:
INCR key:值加1(整数)
DECR key:值减1(整数)
INCRBY key increment:增加指定数值
DECRBY key decrement:减少指定数值
批量操作:
MSET key1 value1 key2 value2:批量设置
MGET key1 key2:批量获取

2.Hash

  Hash为字段-值集合,同样类似于Java的Map,在实际场景中多用于存储用户的基本信息、商品的基本信息、订单的基本信息等。它的常用Redis命令:基本操作:
HSET key field value:设置字段值
HGET key field:获取字段值
HDEL key field:删除字段
HEXISTS key field:检查字段是否存在
HGETALL key:获取所有字段和值
HKEYS key:获取所有字段名
HVALS key:获取所有值
数值操作:
HINCRBY key field increment:增加字段数值

3.List

 List在Redis中是一个双向的链表,既可以从头部插入获取元素也可以从尾部插入获取元素,同时具备获取指定范围内元素的功能,在实际应用中多用于消息队列、排行榜等具有排行功能的场景。关于它的常用命令:基本操作:
LPUSH key value:从左侧插入
RPUSH key value:从右侧插入
LPOP key:从左侧弹出
RPOP key:从右侧弹出
LLEN key:获取列表长度
LRANGE key start stop:获取指定范围元素
阻塞操作:
BLPOP key timeout:左侧阻塞弹出
BRPOP key timeout:右侧阻塞弹出

4.Set

  Set集合在Java中其内部存储的元素是无序的且不可重复,在Redis中同样具有这些特性,同时Redis中的Set集合也提供了便捷的求集合交集、并集、差集的相关运算。它在实际中主要用于标签系统、去重,共同好友推荐等业务,下面介绍它的常用命令:基本操作:
SADD key member:添加成员
SREM key member:删除成员
SMEMBERS key:获取所有成员
SISMEMBER key member:检查成员是否存在
SCARD key:获取集合大小
集合运算:
SINTER key1 key2:交集
SUNION key1 key2:并集
SDIFF key1 key2:差集

5.Zset

 Zset也称作SortedSet,j即有序的集合,类似于Java中的TreeSet可以有序排列,与Set不同的是它其中的每个元素关联一个分数(score),score主要是用于排序。它的实际应用主要是在热搜排行榜、延迟任务(按时间戳排序)、根据某值查询信息,与Set相似,Zset同样具有求集合并集、交集、差集的运算。下面介绍一下它的常用命令:基本操作:
ZADD key score member:添加成员(带分数)
ZREM key member:删除成员
ZRANGE key start stop [WITHSCORES]:按排名范围查询
ZREVRANGE key start stop [WITHSCORES]:按排名倒序查询
ZSCORE key member:获取成员分数
ZRANK key member:获取成员排名(升序)
ZREVRANK key member:获取成员排名(降序)
范围查询:
ZRANGEBYSCORE key min max:按分数范围查询
ZCOUNT key min max:统计分数范围内的成员数
  以上便是Redis数据结构中常见的命令。
http://www.xdnf.cn/news/12747.html

相关文章:

  • 条件语句易错点
  • Android 集成 Firebase 指南
  • 如何写一篇基于Spring Boot + Vue + 微信小程序的软件的接口文档
  • Tavily 技术详解:为大模型提供实时搜索增强的利器
  • 行为设计模式之Iterator(迭代器)
  • Ubuntu20.04中MySQL的安装和配置
  • 【iOS】JSONModel源码学习
  • LLMs 系列科普文(8)
  • 多线程语音识别工具
  • 【工具教程】多个条形码识别用条码内容对图片重命名,批量PDF条形码识别后用条码内容批量改名,使用教程及注意事项
  • 告别 @MockBean!在 Spring Boot 3.2+ 中使用 @MockitoBean 进行单元测试
  • 智慧园区管理平台
  • 阿里云Alibaba Cloud安装Docker与Docker compose【图文教程】
  • Spring 中的三级缓存机制详解
  • MySQL索引:7大类型+4维分类
  • 《Windows 10下QT+OpenCV+Yolo11:AI视觉开发实战指南》
  • GNSS高精度定位之-----星基差分
  • 数据网格的革命:从集中式到分布式的数据管理新范式
  • C++中的数组
  • Linux Docker的简介
  • uni-app学习笔记三十三--触底加载更多和下拉刷新的实现
  • 重新定义 AI 协同:三款开源 MCP 工具开启智能体从“聊天”到“操控”
  • [论文阅读] 人工智能+软件工程(软件测试) | 当大语言模型遇上APP测试:SCENGEN如何让手机应用更靠谱
  • 【论文阅读29】区间预测CIPM(2025)
  • RabbitMQ fanout交换机
  • 国防科技大学计算机基础慕课课堂学习笔记
  • Unity中的Mathf.Clamp01
  • 6.5 自学测试 数据库基础 Day5
  • 利用frp和腾讯云服务器将内网暴露至外网(内网穿透)
  • 【MATLAB代码】基于MCC(最大相关熵)的EKF,一维滤波,用于解决观测噪声的异常|附完整代码,订阅专栏后可直接查看