- 博客(13)
- 收藏
- 关注
原创 最小生成树——Kruskal算法
最小生成树之Kruskal算法Kruskal算法描述Kruskal算法是基于贪心的思想得到的。首先我们把所有的边按照权值先从小到大排列,接着按照顺序选取每条边,如果这条边的两个端点不属于同一集合,那么就将它们合并,直到所有的点都属于同一个集合为止。至于怎么合并到一个集合,那么这里我们就可以用到一个工具——-并查集。换而言之,Kruskal算法就是基于并查集的贪心算法。Kruskal算法流程对于图G(V,E),以下是算法描述:输入: 图G输出: 图G的最小生成树具体流程:(1)将图G看做一个森
2020-12-15 20:13:26
307
原创 分治法实验——二分查找
分治法实验——二分查找一、分治法的基本步骤分治法在每一层递归上都有三个步骤:分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题;治理:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题;合并:将各个子问题的解合并为原问题的解。二、举例有序数列:1,22,31,49,51,66,73,88,90查找88(1) a0=[1],a1=[22], a2=[31],a3=[49],a4=[51],a5=[66],a6=[73],a7= [88],a8=[90],(2)
2020-12-15 20:02:45
982
原创 Redis缓存穿透和雪崩
Redis缓存穿透和雪崩学习视频遇见狂神说服务的高可用问题Redis缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带来了一些问题。其中,最要害的问题,就是数据的一致性问题,从严格意义上讲,这个问题无解。如果对数据的一致性要求很高,那么就不能使用缓存。另外的一些典型问题就是,缓存穿透、缓存雪崩和缓存击穿。目前,业界也都有比较流行的解决方案缓存穿透(查不到)概念缓存穿透的概念很简单,用户想要查询一个数据,发现redis内存数据库没有,也就是缓存没有命中,于
2020-12-02 20:28:34
191
原创 Redis主从复制
Redis主从复制学习视频遇见狂神说概念主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master/leader),后者称为从节点(slave/follower);数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave 以读为主。默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。主从复制的作用主要包括:1、数据冗余:主从复制实现了数据的热备份,是持久化之外的一
2020-12-01 16:44:04
155
原创 Redis发布订阅
Redis发布订阅学习视频遇见狂神说Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。Redis 客户端可以订阅任意数量的频道。订阅/发布消息图:第一个:消息发送者,第二个:频道第三个:消息订阅者下图展示了频道 channel1 ,以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:当有新消息通过 PUBLISH 命令发送给频道 channel1 时,这个消息就会被发送给订阅它的
2020-12-01 16:39:16
120
原创 Redis持久化
Redis持久化学习视频遇见狂神说面试和工作,持久化都是重点Redis 是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失。所以 Redis 提供了持久化功能!RDB(Redis DataBase)什么是RDB在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里。Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了
2020-12-01 16:35:34
117
原创 Redis.conf详解
Redis.conf详解学习视频遇见狂神说启动redis时就需要启动Redis.conf;启动Redis.conf需要通过配置文件[root@localhost bin]# lsdump.rdb redis-check-aof redis-cli redis-serverredis-benchmark redis-check-rdb redis-sentinel yconfig[root@localhost bin]# cd yconfig/[root@l
2020-12-01 16:30:00
400
原创 SpringBoot整合
SpringBoot整合学习视频遇见狂神说SpringBoot操作数据:Spring-data jpa jdbc mongdb redisSpringData也是和SpringBoot齐名的项目说明:在SpringBoot2.x之后,原来使用的Jedis被替换为了lettuce原因: Jedis底层:采用的是直连,多个线程操作的话是不安全的;如果想要避免不安全,使用Jedis pool连接池。更像BIO模式 lettuce底层:采用的是netty,实例可以在多个线程中进行共享,
2020-12-01 16:24:15
143
原创 Jedis
Jedis学习视频遇见狂神说使用java来操作redis什么是Jedis?是Redis官方推荐的java连接开发工具,使用java操作redis的中间件测试1、导入对应的依赖<!--导入jredis的包--> <dependencies> <dependency> <groupId>redis.clients</groupId> <artifactI
2020-12-01 16:19:37
118
原创 事务
事务学习视频遇见狂神说mysql中:ACID(原子性,一致性,隔离性,持久性)要么同时成功,要么同时失败(原子性)Redis事务本质:一组命令的集合。----------------- 队列 set set set 执行 -------------------事务中每条命令都会被序列化,执行过程中按顺序执行,不允许其他命令进行干扰。一次性顺序性排他性redis单条命令是保证原子性的,但是redis事务不保证原子性redis事务没有隔离级别的概念所有的命令在事务中,并没有直接被执行
2020-12-01 16:15:42
231
原创 三种特殊数据类型
三种特殊数据类型学习视频遇见狂神说Geospatial(地理空间)朋友的定位,附近的人,打车距离的计算redis的Geo(geospatial)在redis3.2版本就推出了,这个功能可以推算地理位置的信息,两地之间的距离,方圆几里的人可以查询一些测试数据六个命令geoadd# geoadd 添加地理位置# 规则:两极(南极和北极)无法直接添加,我们一般会下载城市数据,直接通过java程序一次性导入# 参数 key 值(经度、纬度、名称) 经度必须在纬度之前127.0.0.
2020-12-01 16:12:16
717
原创 Redis的五大数据类型
五大数据类型学习视频遇见狂神说官方文档中文文档下面只是常用的命令,其余的命令如果要使用请参考官方文档!String(字符串)90%的java程序员在使用redis的时候只会使用一个String类型127.0.0.1:6379> keys * # 查看数据库中所有的key(empty array)127.0.0.1:6379> set key1 v1 # 设置key值 OK127.0.0.1:6379> get key1 # 获得key的值"v1"12
2020-12-01 11:18:40
144
原创 Redis之Redis入门
Redis入门测试性能redis-benchmark是一个压力测试工具,是官方自带的性能测试工具!redis-benchmark命令参数:图片来自于菜鸟教程测试:#测试:20个并发 1000个请求redis-benchmark -h localhost -p 6379 -c 20 -n 1000开启redis[root@localhost ~]# cd /usr/local/bin[root@localhost bin]# redis-server yconfig/redis.co
2020-12-01 11:09:59
135
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅