![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库+缓存+消息队列
文章平均质量分 56
mysql+redis+MongoDB+rabbitmq+kafka
阳光下是个孩子
这个作者很懒,什么都没留下…
展开
-
RabbitMQ安装教程(保证可以的!!)
Rabbitmq 是用 erlang 语言写的,所以我们需要安装 Erlang,安装Erlang1)安装erlang依赖的基本环境 yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl openssl-devel xmlto zip unzip2)安装ncursesyum -y...原创 2018-07-08 10:52:55 · 1329 阅读 · 0 评论 -
RabbitMQ-HelloWorld
上面这个图片, 简单的概述. 下面我们先来个简单的helloworld. (例子均来自官网) 先来看一下生产者的代码:package com.tgb.kwy.helloworld;import com.rabbitmq.client.AMQP;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Co...原创 2018-07-11 09:51:24 · 570 阅读 · 0 评论 -
RabbitMQ-队列
上一篇文章,写了一个小demo, 用于发送和接收消息,下面创建一个工作队列,向多个消费者分发耗时的任务 图是这样子的代码学习生产者package com.tgb.kwy.workqueues;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rab...原创 2018-07-11 09:52:22 · 523 阅读 · 2 评论 -
RabbitMQ-发布/订阅
上篇文章中,创建一个工作队列,对应的每个任务都交给了一个消费者.那么这一部分,就学习一下,将任务分发给多个消费者.即发布-订阅 场景: 一个发送日志,一个接受者把接收到的数据写到磁盘.另一个接受者把接收到的消息,打在控制台上Exchanges先来回顾一下之前的概念 生产者:发送消息的用户应用程序 队列:消息存储缓冲区 消费者:接收消息的用户应用程序 对于rabbitmq来说,...原创 2018-07-11 09:53:19 · 710 阅读 · 0 评论 -
数据库知识
整理了一下旧笔记本. 上面导图还不少.就顺带发一波博客吧1.先从大面上来. 大概分为哪些内容.其实用的多的,也就是mysql和redis. redis之前写过一些博客.mysql我翻了翻博客 貌似没写过啥.讲真, 用过mysql.sqlserver.postgresql.sqlite, hive, hbaseredis.memcache. 但是真讲原理. 系统学的并不多.从导图开始, 我会大...原创 2019-02-25 19:02:59 · 530 阅读 · 5 评论 -
RabbitMQ-路由
前两篇文章,是建立一个简单的日志系统,可以广播消息给多个消费者.这篇文章,讲一下路由.只订阅部分消息.举个例子: 日志其中一个队列, 只接受关于某一类的信息Bindings(绑定)绑定表示的是交换器和队列的关系. 绑定可以设定额外的routingKey参数, 而绑定键: severity 绑定前面的代码用过的: channel.queueBind(queueName, E...原创 2018-07-11 09:55:10 · 877 阅读 · 0 评论 -
RabbitMQ-topic
上一篇文章讲的direct类型转换器,可以选择性接收日志.这样改进了日志系统,但是这有个问题,就是它是完整匹配的.比如说路由键是dog,只有被标记为dog的消息才被转发. 想转发个dog.xxx,那是不可以的.还是不够灵活. 那么topic转发器,就可以做到了 例子: 消费者(只接受以kwy开头的内容)package com.tgb.kwy.topics;import com....原创 2018-07-11 09:56:18 · 646 阅读 · 0 评论 -
RabbitMQ-RPC
前篇文章,讲了如何使用工作队列在多个消费者之间分配耗时的任务.如果我们需要在远程计算机上运行一个方法并等待结果,这个模式通常叫rpcClient interface(客户端接口)FibonacciRpcClient fibonacciRpc = new FibonacciRpcClient();String result = fibonacciRpc.call("4");Sys...原创 2018-07-11 11:45:47 · 732 阅读 · 0 评论 -
kafka与rabbitmq
我们公司用的kafka, 正好学习一下, 在学习之前, 先回顾一下rabbitmq的东西.都是消息队列,所以总会拿来对比,还记得我最开始理解的kafka就是吞吐量大.先简单说一下rabbitmq除了Qpid,唯一实现了AMQP标准的代理服务器. 而kafka遵从的一般的mq结构.以consumer为中心.rabbitmq,有些东西是在网上直接截的图, (如有侵权, 麻烦联系我删除)简单...原创 2019-01-02 23:03:48 · 604 阅读 · 4 评论 -
kafka权威指南-笔记
第四章的第五章未完待续原创 2019-01-13 21:54:21 · 402 阅读 · 0 评论 -
Navicat连接Mysql8.0.11出现2059错误
昨天为了导入一个sql, 我卸载了mysql,又重装的,结果命令行直接使用么问题,但是用navicat连接, 就一直在报2059的错误 在网上查的是,出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种,一种是升级navicat驱动,一种是把mysql用户...原创 2018-04-24 09:05:05 · 15152 阅读 · 17 评论 -
java项目连接mysql8.0.11问题记录与解决方案
昨天晚上是这个问题: Navicat连接Mysql8.0.11出现2059错误 这个问题解决之后,我就新建了数据库,执行sql脚本, 打算启动项目, 结果项目就是一直提示这个错误: 然后看了我项目的pom文件中mysql-connector-java的版本, 还是5的,所以我就改成了8.0.11版本的,再次启动,报错: 好吧,错误都提示出来了, 那就添加一些serverTimez...原创 2018-04-24 15:50:04 · 3154 阅读 · 21 评论 -
[mongodb]Failed to connect to 127.0.0.1:27017
问题先上图吧: 解决方法: 1.全盘搜索mongod.lock find / -name mongod.lock 如果存在此文件,会出现此文件的路径 删除该文件即可 2.启动mongodb 进入mongodb的bin目录下 ./mongod 即可启动原创 2017-09-06 20:25:00 · 2806 阅读 · 9 评论 -
redis内存分析
如果你一看到redis内存不够用,就说加机器,那么可否想过,或许是你使用的方式可以更加优化呢?本节我们就来谈谈内存的优化redis存储的所有值对象,住在一个名字叫redisObject的房子中, 房子的构造是这样子的: 数据类型:value对象采用哪种数据类型string hash list set sortedset; 编码方式原创 2018-01-27 17:25:16 · 613 阅读 · 23 评论 -
redis集群(二)
上一篇博客我们讲了搭建集群和节点通信,这节课我们来讲一下如果节点出问题了,redis内部是如何来进行故障转移的1.发现有问题的节点上节课我们也提到了redis节点是怎么通信的"ping-pong",通信时附加了消息,消息除了槽信息,还有节点状态/节点故障等 解释: 节点a发送ping消息给节点b,如果正常情况下, b应该会应答pong消息,在a收到pong消息后,就会更新它与原创 2018-01-27 11:54:27 · 469 阅读 · 19 评论 -
redis缓存设计
我们在考评系统,使用了redis, 学生来考试之前,会进行预加载,把考生的卷子存到redis中,每场考试最多两个小时,所以redis缓存过期时间设的四小时.学生到了之后,直接在redis中拿卷子,那么流程就是这样子的学生登录之后,先去redis中拿数据,如果redis中没有这个数据,那么就会去数据库中,然后返回到学生界面中.这么一看,貌似没啥问题,我们再来想: 如果我们忘记了进行预原创 2018-01-25 22:25:13 · 2006 阅读 · 20 评论 -
redis集群(一)
平时自己玩,可以搞个单机来玩,但是到了生产上,大批量数据,单机在内存/并发还是流量上,就会有瓶颈出现.就可以采用集群了,redis-cluster,官方提供的专用集群方案在讨论集群之前,我们先来讨论一下数据分布数据分布redis-cluster采用的是哈希分区.分布式数据库把数据集划分到多个节点上,每个节点复制整体数据的一个子集.哈希分区规则常见的有几种:原创 2018-01-24 11:52:35 · 615 阅读 · 19 评论 -
redis慢查询分析
前言redis是单线程操作,如果在redis中执行耗时较长的操作,就会阻塞其他请求了.我们都知道mysql有慢查询日志,帮助开发运维人员定位系统存在的慢操作. 其实慢查询日志就是字面上的意思,系统在命令执行前后计算每条命令的执行时间.当超过预设阈值,就将这条命令相关信息记录下来.redis也有这个功能redis客户端执行一条命令,分为4部分1> 发送命令2>命令排队原创 2018-01-22 17:11:18 · 9378 阅读 · 20 评论 -
redis事务与lua
前言事务,简单理解就是,一组动作,要么全部执行,要么就全部不执行.从而避免出现数据不一致的情况.redis提供了简单的事务功能,将一组需要的命令放到multi和exec两个命令之间.multi代表事务开始,exec代码事务结束.eg:可以看到sadd命令一开始返回的结果是QUEUED,代表命令并没有真正执行,只是暂时存在redis中.只有当exec执行了.这组命令才算是完成原创 2018-01-16 11:51:48 · 3409 阅读 · 13 评论 -
tomcat8 redis session共享
PrefaceTomcat clustering with Redis data-cache implementation.Redis session manager is plug-gable one. It uses to store sessions into Redis for easy distribution of HTTP Requests across a cluste原创 2018-01-13 14:47:14 · 821 阅读 · 9 评论 -
ServiceStack.Redis 使用过程中碰到的问题
C#利用ServiceStack.Redis来操作Redis,它是Redis官方推荐的C#客户端,性能非常优越,使用也很方便,但是我在使用这个工具的时候碰到的问题:1、每小时只能访问Redis 6000次报这个错误:The free-quota limit on '6000 Redis requests per hour' has been reached. Please see ht原创 2017-02-05 11:27:30 · 3628 阅读 · 20 评论 -
redis的五种数据类型---Sorted Set类型
前言 有序集合类型是Redis五种数据类型中最高级的、也是最复杂的类型。 继上篇讲解set后,我们来看set与sorted set区别 与set相比,sorted sets就是将set中的元素增加一个权重参数:score,使得集合中元素能够按score有序排列,是插入有序的,即自动排序。这里需要注意的是尽管sorted-sets的成员必须是唯一的原创 2017-01-15 14:12:49 · 3249 阅读 · 19 评论 -
Redis——简介
简介redis(REmote DIctionary Server 远程字典服务器)是一款个人开发的数据库,典型的NoSQL数据库服务器,可以作为服务程序独立运行于自己的服务器主机。那么这里大家会说什么是NoSQL数据库(即不仅仅是SQL),那么为什么要用NoSQL非关系型数据库呢,是为了解决三高需求:高并发、高存储、高扩展可用;Redis的优势1、存储结构字符串类型原创 2016-09-22 20:11:19 · 874 阅读 · 38 评论 -
redis的五种数据类型---string类型
继上篇文章简单介绍redis是什么之后,下面我们就来认识他原创 2016-11-20 10:55:13 · 825 阅读 · 0 评论 -
redis的五种数据类型---hash类型
简介 常用命令:hget;hset;hgetall等 我们可以将Redis中的Hashes类型看成具有String Key和String Value的map容器。所以该类型非常适合于存储值对象的信息。如Username、Password和Age等。如果Hash中包含很少的字段,那么该类型的数据也将仅占用很少的磁盘空间。每一个Hash可以存储4294967295个键值对。原创 2016-12-25 20:57:55 · 7441 阅读 · 29 评论 -
redis的五种数据类型---list类型
list(双向链表) list是按照插入顺序排序的字符串链表。和数据结构中的普通链表一样,可以在链表的左右两边分别操作(反向查找和遍历等),所以也称为“双向链表”,不过也带来了部分额外的内存开销,redis内部的很多实现,同时,如果是在链表的两头插入或删除,会非常高效,但是要是这些操作在链表的中间,那就比较低效了。在插入时,若该key值不存在,redis将为该键创建一个新的链原创 2016-12-31 21:41:08 · 1016 阅读 · 18 评论 -
redis的五种数据类型---set类型
与list区别 redis中,set可看作为没有排序的字符集合,和list类型一样,是一个列表的功能,可以在该类型数值上执行添加、删除或判断某一元素是否存在等操作。但是与list不同的是:1、不会出现重复的数据,2、提供了可判断某个成员是否在一个set集合内的接口。3、在服务器端完成多个sets之间的聚合计算操作,如:unions、intersections。所以效率很快。应原创 2017-01-08 22:16:25 · 1031 阅读 · 18 评论