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

Redis【超详细】

Redis 是一个基于内存的key-value结构的数据库

一、redis的安装

1.1、安装步骤

1)安装Redis依赖

Redis是基于c语言编写的,因此需要安装对应的gcc环境

yum install -y gcc tcl

2)进入/usr/local/src/目录上传并解压安装包

解压:

tar -zxvf 安装包名

3)解压成功后进入解压的文件目录

运行编译指令:

make && make install

注意:如果没有报错,表示安装成功,默认安装路径为/user/lcoal/bin目录下

1.2、启动方式

1)前台启动

前台启动,会阻塞整个窗口,窗口关闭或者停止,Redis也会停止

redis-server

2)后台启动

修改Redis的配置文件,配置文件就在解压的安装包下,名称为redis.conf,修改配置文件,一般先进行备份

# 将守护进程修改为yes就可以在后台运行
daemonize yes

修改成功后启动redis时,只需要在命令后面加上配置文件名

redis-server redis.con

1.3、开机自启

通过配置设置开机自启,创建一个系统服务文件

1)创建系统服务文件

vi /etc/systemd/system/redis.service

2)设置文件内容为

[Unit]
Description=redis-server
After=network.target
​
[Service]
Type=forking
# 这行配置内容要根据redis的安装目录自定义路径
ExecStart=/usr/local/bin/redis-server /usr/local/src/redis-6.2.6/redis.conf
PrivateTmp=true
​
[Install]
WantedBy=multi-user.target

3)重载系统服务:

systemctl daemon-reload

之后就可以使用systemctl命令操作redis

1.4、Redis其他配置

# 设置访问Redis的访问密码
requirepass 密码
​
# 监听端口
port 6379
​
# 设置允许访问的地址,默认是127.0.0.1,会导致只能在本地访问,设置为0.0.0.0就可以在任何IP下访问
bind 0.0.0.0
​
# 数据库数量,设置为1,代表只使用一个数据库,默认有16个库
databases 1
​
# 设置redis最大使用的内存
maxmemory 512mb
​
# 日志文件,默认为空,不记录日志,可以指定日子文件名
logfile "文件名"

1.4、使用Docker安装

普通安装redis后,redis默认只能够本地连接(127.0.0.1),不能进行远程访问;

常规步骤:

  • 安装redis镜像:拉取官方的最新版本的镜像

    docker pull redis:latest
  • 查看redis镜像:查看是否已安装了 redis

    docker images
  • 运行容器

    docker run -itd --name myRedis -p 6379:6379 redis
  • 查看容器安装成功

    docker ps

支持远程访问:

  • 安装redis镜像:拉取官方的最新版本的镜像

    docker pull redis:latest
  • 新建data和conf两个文件夹,位置随意

    mkdir -p /root/docker/redis/data
    mkdir -p /root/docker/redis/conf
  • 增加配置文件 redis.conf

    在刚才新建的redis/conf中新建文件redis.conf,内容如下:

    #bind 127.0.0.1 //允许远程连接
    protected-mode no
    appendonly yes //持久化
    requirepass 123456 //密码

注意:

1、以上文件(redis.conf)内容行与行之间不能带有空格,否则新建容器后,容器状态为stopped,无法启动;

2、如果配置了redis密码,在配置时除了需要redis的ip端口号外,也需要配置redis密码;

  • 创建redis容器并启动:

    docker run --name myRedis -p 6379:6379 -v /root/docker/redis/data:/data -v /root/docker/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf
  • 启动成功,查看状态

    docker ps

二、常用指令

2.1、常用数据类型

Redis存储的是key-value结构的数据,其中key是字符串类型,value有五种常用到的数据类型

  • String —— 字符串类型(最常用)

  • Hash —— 字典类型(最常用)

  • List —— 列表类型

  • Set —— 集合类型

  • ZSet —— 有序集合类型

2.2、字符串常用命令

字符串类型string:普通字符串,Redis中最简单的数据类型

指令说明
set key value设置指定key的值
get key获取指定key的值
setex key seconds value设置置顶key的值,并将key的过期时间设置为seconds秒
setnx key value只有在key不存在时设置value的值

e g:

// 设置指定key所对应值
set name lihua
​
// 获取指定key的值
get name
​
// 设置指定key的有效时间为20秒
setex age 20 zhang
​
// 当设置的key不存在时才会设置对应的值,存在时不设置
setnx score 98      // 不存在时返回1,存在时返回0

2.3、哈希常用命令

哈希hash:也叫散列,类似于java中的HashMap结构,hash特别适合存储对象

指令说明
hset key field value将哈希表中的字段field的值设置为value
hget key field获取存储在哈希表中指定字段的值
hdel key field删除存储在哈希表中指定字段的值
hkeys key获取哈希表中的所有字段
hvals key获取哈希表中所有值

e g:

// 设置ID属性为2的人的name属性为zhang
hset 2 name zhang
​
// 获取ID属性为2的问的name属性的值
hget 2 name
​
// 删除id属性为2的人的name属性的值
hdel 2 name
​
// 获取ID属性为2的人的所有字段
hkeys 2
​
// 获取ID属性为2的人的所有字段值
hvals 2

2.4、列表常用命令

列表list:按照插入顺序排序,可以有重复元素,类似java中的linkelist

指令说明
lpush key value1 [value2]将一个或多个值插入到列表的头部
lrange key start stop获取列表指定范围内的元素
rpop key移除并获取列表最后一个元素
llen key获取类表的长度

eg:

// 向对应key中插如两个值
lpush mylist 23 43
​
// 获取对应key的指定范围内的元素(头部到尾部使用0 -1表示)
lrange mylist 0 -1
​
// 删除并获取列表中的最后一个
rpop mylist
​
// 获取指定列表的长度
llen mylist

2.5、集合常用命令

集合set:无序集合,没有重复元素,类似于java中的HashSet

指令说明
sadd key member1 [member2]向集合中添加一个或多个成员
smembers key返回集合中的所有成员
scard key获取集合的成员数
sinter key1 [key2]返回所有指定集合的交集
sunion key1 [key2]返回所有集合的并集
srem key member1 [member2]删除集合中一个或多个成员

e g:

// 向集合中添加两个成员
sadd myset 223 344
​
// 返回集合中的所有元素
smembers myset
​
// 获取集合的成员数
scard myset
​
// 返回两个集合的交集
sinter myset1 myset2
​
// 返回两个集合的并集
sunion myset2 myset2
​
// 删除集合中的元素
srem myset 223

2.6、有序集合常用命令

有序集合sorted set |zset:集合中每个元素关联一个double类型的分数,根据分数生序排序,没有重复元素

指令说明
zadd key score1 member1 [score2 member2]向有序集合中体添加一个或多个成员
zrange key start stop [withscores]通过索引区间返回有序集合中的指定区间的元素
zincrby key increament member有序集合中对指定成员的分数加上增量increament
zrem key member [member]移除有序集合中的一个或者多个元素

eg:

// 向有序集合中添加一个成员并指定a的score值为10.0
zadd zset 10.0 a
​
// 查看有序集合中的所有成员的元素
zrange zset 0 -1
​
// 查看有序集合中的所有成员的元素和分数
zrange zset 0 -1 withscore
​
// 对有序成员中的a元素的分数值加5
zincrby zset 5.0 a
​
// 删除有序集合中的指定元素
zrem zset b

2.7、通用命令

Redis的通用命令就是部分数据类型的,都可以使用的命令

命令说明
keys pattem查找所有符合给定模式pattem的key
exists key检查给定的key是否存在
type key返回key所存储的数据类型
del key1 [key2]删除指定存在的key

eg:

// 返回所有的key
keys *// 返回以set开头的所有key
keys set*
​
// 检查具体key是否存在
exists tex
​
// 返回对应key存储的数据类型
type tex
​
// 删除key
del tex

三、在java程序中操作redis

在java程序中一般使用Spring Data Redis操作redis数据库

3.1、redis的java客户端

Redis的java客户端有很多,常用的有几种:

  • Jedis

  • Lettuce

  • Spring Data Redis

Spring Data Redis是Spring的一部分,对Redis底层开发包进行了高度封装

3.2、Spring Data Redis的使用方法

操作步骤:

  • 导入Spring Data Redis的maven坐标

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
  • 配置Redis数据源

 redis:host: IP地址port: 端口号password: 密码database: 10    # 表示使用10号数据库,redis默认创建16个数据库
  • 编写配置类,创建RedisTemplate对象

import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;
​
/*** Redis配置类*/
@Configuration
@Slf4j
public class RedisConfiguration {
​@Beanpublic RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory){log.info("开始创建Redis模版对象···");RedisTemplate redisTemplate = new RedisTemplate();// 设置redis的链接工厂对象redisTemplate.setConnectionFactory(redisConnectionFactory);// 设置redis key的序列化对象redisTemplate.setKeySerializer(new StringRedisSerializer());return redisTemplate;}
}
  • 通过RedisTemplate对象中的opsFor***来获取具体对象操作Redis,这里列举个别

/*** Redis测试类*/
@SpringBootTest
public class RedisTemplateText {@Autowiredprivate RedisTemplate redisTemplate;@Testpublic void textRedisType(){/*** 操作字符串类类型数据*/// 添加字符串类型数据-并设置有效时间redisTemplate.opsForValue().set("name","zhangshanc",20, TimeUnit.MILLISECONDS);// 对应key不存在时设置对应的key的值--对应redis中的setnx指令redisTemplate.opsForValue().setIfAbsent("age","12");
​/*** 操作哈希类型数据--其他指令见名知意*/// 添加hash类型的数据使用put--对应redis中的指令为hsetredisTemplate.opsForHash().put("11","name","tom");}
}

注意:redis中通用类型的数据直接使用RedisTemplate对象直接操作

相关文章:

Redis【超详细】

Redis 是一个基于内存的key-value结构的数据库 一、redis的安装 1.1、安装步骤 1&#xff09;安装Redis依赖 Redis是基于c语言编写的&#xff0c;因此需要安装对应的gcc环境 yum install -y gcc tcl 2&#xff09;进入/usr/local/src/目录上传并解压安装包 解压&#xf…...

通过ip获取用户位置信息以及地区时间

项目需要获取用户得位置信息以及地区时间&#xff0c;因为第一次搞&#xff0c;以防还有下次&#xff0c;特此记录 1.首先就是显得拿到用户得ip地址 先上代码&#xff1a; public boolean checkIp(String ip) {return null ip || ip.isEmpty() || "unknown".equa…...

pytest-yaml-sanmu(七):使用fixture返回值

fixture 是 pytest 中非常重要的功能&#xff0c;大部分项目都可能会用到 fixture。 pytest 的内置标记 usefixtures 可以帮助用例自动的使用 fixture 1. 创建 fixture pytest 中的 fixtures 大致有两个用途 在用例执行之前、执行之后&#xff0c;自动的执行 通过 fixture …...

2024最全软件测试面试八股文(答案+文档+视频讲解)

Part1 1、你的测试职业发展是什么&#xff1f; 测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师奔去。而且我也有初步的职业规划&#xff0c;前3年积累测试经验&#xff0c;按如何做好测试工程师的要点去要求自…...

EasyBoss ERP移动端上线数据分析模块,随时查Shopee/TikTok本土店数据

前段时间&#xff0c;EasyBoss ERP出了个超酷炫的数字大屏功能&#xff0c;广受好评。 但是也有老板说&#xff0c;电脑端看数据不够方便啊&#xff0c;你们EasyBoss有本事上个手机就能看数据的功能啊&#xff01; 说干就干&#xff0c;直接满足你们的需求&#xff01; 于是在…...

机器学习与AI大数据的融合:开启智能新时代

在当今这个信息爆炸的时代&#xff0c;大数据和人工智能&#xff08;AI&#xff09;已经成为推动社会进步的强大引擎。作为AI核心技术之一的机器学习&#xff08;Machine Learning, ML&#xff09;&#xff0c;与大数据的深度融合正引领着一场前所未有的科技革命&#xff0c;不…...

视频监控业务平台LntonCVS国标视频综合管理平台功能及技术优势

随着安防行业的快速进步&#xff0c;传统的视频监控平台正在与先进的技术和互联网技术融合&#xff0c;包括5G通信、GIS、大数据、云计算、边缘计算、AI识别、智能分析和视频直播等。这些技术的整合形成了综合性视频监控管理平台&#xff0c;具备集中管理、多级联网共享、互联互…...

Python面试宝典第6题:有效的括号

题目 给定一个只包括 (、)、{、}、[、] 这些字符的字符串&#xff0c;判断该字符串是否有效。有效字符串需要满足以下的条件。 1、左括号必须用相同类型的右括号闭合。 2、左括号必须以正确的顺序闭合。 3、每个右括号都有一个对应的相同类型的左括号。 注意&#xff1a;空字符…...

Windows上使用Navicat连接ubuntu上的mysql8报错:10061和1130

问题一&#xff1a;can’t connect to mysql server on ‘192.168.xxx.xxx’(10061) 解决&#xff1a; sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf&#xff0c;bind-address绑定了登陆的IP&#xff0c;把这两行代码注释掉&#xff0c;然后重启mysql。 问题二&#xff1a;1…...

Feign远程调用,请求头丢失情况

现象 解决方案 import feign.RequestInterceptor; import feign.RequestTemplate; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.context.request.RequestContextHolde…...

Windows 11 安装 安卓子系统 (WSA)

How to Install Windows Subsystem for Android (WSA) on Windows 11 新手教程&#xff1a;如何安装Windows 11 安卓子系统 说明 Windows Subsystem for Android 或 WSA 是由 Hyper-V 提供支持的虚拟机&#xff0c;可在 Windows 11 操作系统上运行 Android 应用程序。虽然它需…...

CD4017 – 带解码输出的十进制计数器

CD4017 IC 是一个十进制计数器&#xff0c;它有 10 个输出&#xff0c;分别代表 0 到 9 的数字。计数器在&#xff08;14号引脚&#xff09;每个时钟脉冲上升时增加 1。计数器达到 9 后&#xff0c;它会在下一个时钟脉冲时从 0 重新开始。 引脚名称管脚 &#xff03;类型描述VD…...

Spring Boot 文件上传和下载指南:从基础到进阶

文章目录 引言1. 环境配置2. 文件上传2.1 配置文件上传路径2.2 创建上传服务2.3 创建上传控制器 3. 文件下载3.1 创建下载服务3.2 创建下载控制器 4. 前端页面4.1 文件上传页面4.2 文件下载页面 5. 技术分析结论 &#x1f389;欢迎来到SpringBoot框架学习专栏~ ☆* o(≧▽≦)o …...

Windows Server 2019部署网络负载均衡NLB服务的详细操作步骤

部署前准备 首先需要准备两台Windows Server 2019服务器&#xff0c;虚拟机创建请参考 VMware Workstation安装Windows Server2019系统详细操作步骤_安装windows server 2019操作系统(写出操作过程)-CSDN博客 克隆虚拟机请参考 VMware Workstation克隆虚拟机详细步骤-CSDN博…...

Java增加线程后kafka仍然消费很慢

文章目录 一、问题分析二、控制kafka消费速度属性三、案例描述 一、问题分析 Java增加线程通常是为了提高程序的并发处理能力&#xff0c;但如果Kafka仍然消费很慢&#xff0c;可能的原因有&#xff1a; 网络延迟较大&#xff1a;如果网络延迟较大&#xff0c;即使开启了多线…...

分布式事务实现技术及考虑点

什么是分布式事务&#xff1f; 首先理解什么是本地事务 平时我们在程序中通过Spring去控制事务是利用数据库本身的事务特性来实现的&#xff0c;因此叫数据库事务&#xff0c;由于应用主要靠关系数据库来控制事务&#xff0c;而数据库通常和应用在同一个服务器&#xff0c;所…...

JavaScript中闭包的理解

闭包&#xff08;Closure&#xff09;概念&#xff1a;一个函数对周围状态的引用捆绑在一起&#xff0c;内层函数中访问到其外层函数的作用域。简单来说;闭包内层函数引用外层函数的变量&#xff0c;如下图&#xff1a; 外层在使用一个函数包裹住闭包是对变量的保护&#xff0c…...

传统IO和NIO文件拷贝过程

参考&#xff1a;https://blog.csdn.net/weixin_57323780/article/details/130250582...

算法思想总结:优先级队列

一、最后一块石头的重量 . - 力扣&#xff08;LeetCode&#xff09; 我们每次都要快速找到前两个最大的石头进行抵消&#xff0c;这个时候用优先级队列&#xff08;建大堆&#xff09;,不断取堆顶元素是最好的&#xff01;每次删除堆顶元素后&#xff0c;可以自动调整&#xf…...

《米小圈日记魔法》边看边学,轻松掌握写日记的魔法!

在当今充满数字化娱乐和信息快速变迁的时代&#xff0c;如何创新引导孩子们学习&#xff0c;特别是如何培养他们的写作能力&#xff0c;一直是家长和教育者们关注的焦点。今天就向大家推荐一部寓教于乐的动画片《米小圈日记魔法》&#xff0c;该系列动画通过其独特的故事情节和…...

鸿蒙应用实践:利用扣子API开发起床文案生成器

前言 扣子是一个新一代 AI 应用开发平台&#xff0c;无需编程基础即可快速搭建基于大模型的 Bot&#xff0c;并发布到各个渠道。平台优势包括无限拓展的能力集&#xff08;内置和自定义插件&#xff09;、丰富的数据源&#xff08;支持多种数据格式和上传方式&#xff09;、持…...

二手物品交易小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;管理员管理&#xff0c;商品信息管理&#xff0c;论坛管理&#xff0c;收货地址管理&#xff0c;基础数据管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;商品信息&…...

基于Spring Boot的高校智慧采购系统

1 项目介绍 1.1 摘要 随着信息技术与网络技术的迅猛发展&#xff0c;人类社会已跨入全新信息化纪元。传统的管理手段因其内在局限&#xff0c;在处理海量信息资源时日渐捉襟见肘&#xff0c;难以匹配不断提升的信息管理效率和便捷化需求。顺应时代发展趋势&#xff0c;各类先…...

数字流的秩

题目链接 数字流的秩 题目描述 注意点 x < 50000 解答思路 可以使用二叉搜索树存储出现的次数以及数字的出现次数&#xff0c;方便后续统计数字x的秩关键在于构建树的过程&#xff0c;如果树中已经有值为x的节点&#xff0c;需要将该节点对应的数字出现次数加1&#xf…...

【mybatis】mybatis-plus中Wrapper(条件构造器)简介_常用方法及说明

1、简介 MyBatis-Plus 是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。MyBatis-Plus 提供了强大的条件构造器&#xff08;Wrapper&#xff09;&#xff0c;用于构建复杂的 SQL 查询条件&#xff0c;使得我们…...

IT专业入门:高考假期预习指南

七月&#xff0c;是一个充满转折与希望的月份。随着各省高考分数的揭晓&#xff0c;许多有志于踏入IT领域的少年们正站在新旅程的起点上。高考的完结并不意味着学习的结束&#xff0c;相反&#xff0c;它是一个全新的开始&#xff0c;一个探索未知世界的绝佳时机。作为IT领域的…...

推动高效能:东芝TB67H301FTG全桥直流电机驱动IC

在如今高度自动化的时代&#xff0c;电子产品的性能和效率成为了工程师们关注的焦点。东芝的TB67H301FTG全桥直流电机驱动IC应运而生&#xff0c;以其卓越的技术和可靠性&#xff0c;成为众多应用的理想选择。无论是在机器人、家用电器、工业自动化&#xff0c;还是在其他需要精…...

Matplotlib 中文显示

Matplotlib 中文显示 Matplotlib 是一个强大的 Python 绘图库,广泛应用于数据可视化领域。然而,对于中文用户来说,Matplotlib 的默认设置可能不支持中文显示,这给使用带来了一定的不便。本文将详细介绍如何在 Matplotlib 中正确显示中文,包括中文字符的字体选择、字体大小…...

【LeetCode:841. 钥匙和房间 + DFS】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…...

1)并发事务的问题

1) 并发事务的问题&#xff1f; &#xff08;1&#xff09;读“脏”数据 事务T1修改数据后T2读取了该数据&#xff0c;但是T1撤消了修改&#xff0c; 事务T1进行了回滚&#xff0c;导致事务T2读取的数据与数据库中的数据不一致。&#xff08;2&#xff09;丢失修改 两个事务…...

Python缓存利器:cachetools库详解

Python缓存利器:cachetools库详解 1. cachetools简介2. 安装3. 基本概念3.1 LRU Cache (Least Recently Used)3.2 TTL Cache (Time-To-Live)3.3 LFU Cache (Least Frequently Used) 4. 使用示例4.1 使用LRU Cache4.2 使用TTL Cache4.3 使用LFU Cache4.4 缓存装饰器 5. 进阶用法…...

【Python实战因果推断】20_线性回归的不合理效果10

目录 Neutral Controls Noise Inducing Control Feature Selection: A Bias-Variance Trade-Off Neutral Controls 现在&#xff0c;您可能已经对回归如何调整混杂变量有了一定的了解。如果您想知道干预 T 对 Y 的影响&#xff0c;同时调整混杂变量 X&#xff0c;您所要做的…...

在Ubuntu 16.04上安装和配置ownCloud的方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 简介 ownCloud 是一个文件共享服务器&#xff0c;允许您将个人内容&#xff08;如文档和图片&#xff09;存储在一个类似 Dropbox 的集…...

Java | Leetcode Java题解之第213题打家劫舍II

题目&#xff1a; 题解&#xff1a; class Solution {public int rob(int[] nums) {int length nums.length;if (length 1) {return nums[0];} else if (length 2) {return Math.max(nums[0], nums[1]);}return Math.max(robRange(nums, 0, length - 2), robRange(nums, 1,…...

使用 ESP32 接收 MAX4466 模拟麦克风模块的数据,通过 DAC 转码成 PCM 格式,并通过 MQTT 发送给另一台设备,可以通过以下步骤实现。

硬件准备 两个 ESP32 开发板MAX4466 模拟麦克风模块MQTT 服务器&#xff08;例如 Mosquitto&#xff09; 接线 MAX4466 模块输出&#xff08;AO&#xff09; -> ESP32 ADC 引脚&#xff08;如 GPIO 34&#xff09; 软件准备 音频采集DAC 转码MQTT 发送和接收 代码实现…...

SQL二次注入原理分析

二次注入在测试的时候比较少见&#xff0c;或者说很难被测出来&#xff0c;因为测的时候首先要去找注入的位置&#xff0c;其次是去判断第一次执行的SQL语句&#xff0c;然后还要去判断第二次进行调用的 SQL 语句。而关键问题就出在第二次的调用上面。 下面以一个常用过滤方法…...

在线签约如何选择?2024年10款顶级app大比拼

支持电子合同签约的10大app&#xff1a;e签宝、上上签、DocuSign、契约锁、Adobe Sign、法大大、SignNow、安心签、HelloSign、PandaDoc。 无论是企业之间的交易还是个人服务合同&#xff0c;线上电子合同签约提供了一种便捷、高效且安全的方式来处理法律文档。本文将介绍几款优…...

gcc: warning: -Wunused-function;加了选项,为什么就不报警告呢?

文章目录 问题clang的编译而使用gcc是就不报问题分析原因如果是非static的函数问题 下面这个代码段,其中这个函数hton_ext_2byte,在整个程序里就没有使用。 static inline uint16_t hton_ext_2byte(uint8_t **p) {uint16_t v;******return v;...

系统提示我未定义与 ‘double‘ 类型的输入参数相对应的函数 ‘finverse‘,如何解决?

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…...

【电路笔记】-B类放大器

B类放大器 文章目录 B类放大器1、概述2、B类放大器介绍3、推挽式配置4、限制交叉失真5、B类放大器效率6、总结1、概述 我们在之前的文章中已经知道,A 类放大器的特点是导通角为 360,理论最大效率为 50%。 在本文中,我们将详细介绍另一类放大器,称为B类放大器,它是为解决A…...

Ubuntu 22.04 安装中文字体

笔者在用OpenCV4.9处理图片加水印时&#xff0c;中文乱码。原来是Ubuntu 22.04发行版缺少中文字体支持&#xff0c;因此&#xff0c;笔者就找资料安装了需要的中文字体&#xff0c;特此记录&#xff0c;以备后查。 1、打开终端&#xff1a; 2、更新软件包列表&#xff1a; su…...

「树莓派入门」树莓派进阶04-直流电机控制与PWM应用

直流电机控制是树莓派硬件项目中的一项重要技能。通过PWM技术,你可以实现对电机速度的精确控制。在实验过程中,请注意电机的电源匹配和GPIO引脚的保护。 一、直流电机基本原理 直流电机通过直流电源供电,其工作原理基于洛伦兹力定律,即电流通过线圈时,会在磁场中受到力的…...

利用数据集,用机器学习模型对股市预测,聊聊看!

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…...

015-GeoGebra基础篇-定点旋转物体、动态显示数值并显示运动轨迹

这可能是我能想到的最大概率可以被你搜索到的标题了&#xff0c;容我先喘口气~ 目录 一、成品展示二、涉及内容三、做图步骤&#xff08;1&#xff09;绘制三角形t&#xff08;2&#xff09;建立定点D&#xff08;3&#xff09;制作角度滑动条&#xff08;4&#xff09;图形绕点…...

2024年6月份找工作和面试总结

转眼间6月份已经过完了&#xff0c;2024年已经过了一半&#xff0c;希望大家都找到了合适的工作。 本人前段时间写了5月份找工作的情况&#xff0c;请查看2024年5月份面试总结-CSDN博客 但是后续写的总结被和谐了&#xff0c;不知道这篇文章能不能发出来。 1、6月份面试机会依…...

同步时钟:北斗/GPS卫星、电信基站、NTP以太网校时方式的区别

同步时钟是保证各设备时间统一的重要装置&#xff0c;广泛应用于电力、通信、金融、学校、医院、地铁等多个领域。目前&#xff0c;常用的同步时钟方式包括&#xff1a;北斗/GPS卫星、电信基站、NTP以太网等。 下面跟着小编来看一下这些校时方式及他们的区别吧。 1. 北斗/GP…...

实现Java应用的快速开发与迭代

实现Java应用的快速开发与迭代 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 1. 引言 随着软件开发周期的不断缩短和市场竞争的加剧&#xff0c;快速开发和…...

利用redis数据库管理代理库爬取cosplay网站-cnblog

爬取cos猎人 数据库管理主要分为4个模块&#xff0c;代理获取模块&#xff0c;代理储存模块&#xff0c;代理测试模块&#xff0c;爬取模块 cos猎人已经倒闭&#xff0c;所以放出爬虫源码 api.py 为爬虫评分提供接口支持 import requests import concurrent.futures import …...

数据仓库建模基础理论-01-为什么需要数据建模?

一、什么是数据模型&#xff1f; 数据模型是数据库的基础结构&#xff0c;用于描述和组织数据的方式。 它不仅是数据库的底层结构&#xff0c;还是一个概念性工具&#xff0c;帮助理解数据的含义和关系。 数据模型包括数据本身、数据之间的关系、数据的语义&#xff08;含义和…...

中序遍历的两种实现——二叉树专题复习

递归实现&#xff1a; /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right)…...