Redis的基本使用
创始人
2025-05-31 00:45:59
0

Redis介绍

Redis(Remote Dictionary Server)远程字典服务,是一个开源的使用 ANSI C语言编写、支持网络、可基于内存亦可持久性的日志型、key-value 数据库,并提供多种语言的 API,是当下最流行的NoSQL技术之一。

Redis八种数据类型

2.1. String类型

  1. 设值与取值
    在这里插入图片描述
  2. 自增自减
    在这里插入图片描述
  3. 范围取值
    在这里插入图片描述
  4. 字符替换
    在这里插入图片描述
  5. setex和setnx
    在这里插入图片描述
  6. 同时取和设值多个值
    在这里插入图片描述
    对象值的设置与获取
    在这里插入图片描述
  7. getset方法,先get后set,不存在则返回nil
    在这里插入图片描述

2.2. List数据类型

  1. list常用作栈或者队列,指令以l开头表示左侧队列执行,r表示右侧队列执行。
    在这里插入图片描述
  2. 弹出操作pop

在这里插入图片描述
3. list索引取值与长度
在这里插入图片描述
4. 移除指定的值
在这里插入图片描述
5. ltrim截断
在这里插入图片描述
6. rpoplpush: 移除list的最后一个元素,并将它移动到新列表中
在这里插入图片描述
7. lset: 修改指定下标的值
在这里插入图片描述
8. linsert: 在列表中的某个值前面或者后面插入值
在这里插入图片描述

2.3. set数据类型

  1. 元素的增删与获取
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  2. 差集、交集、并集
    在这里插入图片描述

2.4. hash数据类型

hash数据类型也是key-value形式,只不过value为map形式。

  1. 常用的增删取值操作
    在这里插入图片描述
    在这里插入图片描述
  2. 属性值的增加与减少
    在这里插入图片描述
  3. hsetnx: 不存在则设置
    在这里插入图片描述

2.5. zset数据类型

zset为有序set数据类型。
在这里插入图片描述
在这里插入图片描述

2.6. geospatial数据类型

geo数据类型用来计算地理位置信息,有效的位置范围为经度从 -180 度到 180 度,纬度从 -85.05112878 度到 85.05112878 度,其底层使用zset实现,zset的操作对geo类型也适用。
添加如下模拟数据:
在这里插入图片描述
获取两个位置间的距离,默认以米作为单位,还可以指定千米(km)、英里(mi)、英尺(ft)。
在这里插入图片描述
georadius 以给定的经纬度为中心,找出某一半径内的元素
在这里插入图片描述
在这里插入图片描述

2.7. hyperloglog数据类型

hyperloglog常用来统计网站的每日访问量,即UV,UV是指通过互联网访问、浏览这个网页的自然人。访问的一个电脑客户端为一个访客,一天内同一个访客仅被计算一次。hyperloglog 的优点是占用内存小,并且是固定的。存储 2^64 个不同元素的基数,只需要 12 KB 的空间。但是也可能有 0.81% 的错误率。
在这里插入图片描述

2.8. bitmap位图

bitmap就是通过最小的单位bit来进行0或者1的设置,表示某个元素对应的值或者状态。一个bit的值,或者是0,或者是1,常用来统计只有两个取值的一些变量,下面以统计一周的打卡来说明:
在这里插入图片描述

Redis事务

redis事务的本质是一组命令,一个事务中的所有命令都会被序列化,在事务执行过程中,会按照顺序执行,一次性、顺序性、排他性的执行一组命令。
Redis 事务的命令:

  • 开启事务:multi
  • 命令入队
  • 执行事务:exec
  • 撤销事务:discard
    在这里插入图片描述
    在事务执行过程中遇到编译型异常,比如命令有误,事务中的所有指令都不会执行。
    在这里插入图片描述
    事务执行遇到运行时异常,如事务中某条命令执行结果报错,其他命令是可以正常执行的,错误命令抛出异常。
    在这里插入图片描述
    Redis的监视(watch):watch命令可以监控一个或多个key,一旦其中有一个key被修改(或删除),之后的事务就不会执行。监控一直持续到exec命令(事务中的命令是在exec之后才执行的,所以在multi命令后可以修改watch监控的键值)。假设我们通过watch命令在事务执行之前监控了多个Keys,倘若在watch之后有任何Key的值发生了变化,exec命令执行的事务都将被放弃,同时返回Null multi-bulk应答以通知调用者事务执行失败。
    在这里插入图片描述
    在这里插入图片描述
    另一个线程:
    在这里插入图片描述

Springboot整合Redis

  1. 导入redis依赖和fastjson依赖
		org.springframework.bootspring-boot-starter-data-redis2.5.0com.alibabafastjson1.2.76
  1. redis配置
spring.redis.host=localhost
spring.redis.port=6379
  1. 测试使用
@SpringBootTest
public class RedisTest {@Autowiredprivate RedisTemplate redisTemplate;@Testpublic void testRedis() {JSONObject jsonObject = new JSONObject();jsonObject.put("name", "xiaoming");jsonObject.put("age", 20);jsonObject.put("job", "student");// 保存到redisredisTemplate.opsForValue().set("stu1", jsonObject.toJSONString());System.out.println(redisTemplate.opsForValue().get("stu1"));}}

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...