自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

water Wang

每个人都会有觉醒期,只是来的晚或者早罢了。

  • 博客(318)
  • 资源 (14)
  • 收藏
  • 关注

转载 前传(2):如何选择Kafka发行版?

我们谈了 Kafka 当前的定位问题,Kafka 不再是一个单纯的消息引擎系统,而是能够实现精确一次(Exactly-once)处理语义的实时流处理平台。你可能听说过 Apache Storm、Apache Spark Streaming 亦或是 Apache Flink,它们在大规模流处理领域可都是响当当的名字。令人高兴的是,Kafka 经过这么长时间不断的迭代,现在已经能够稍稍比肩这些框架了。我在这里使用了“稍稍”这个字眼,一方面想表达Kafka 社区对于这些框架心存敬意;另一方面也想表达目前国内鲜有

2021-03-17 15:10:46 1752

转载 前传(1):Kafka 的前生今世

不错的文章,转发下Kafka只是消息引擎系统吗?要搞清楚这个问题,我们不可避免地要了解一下 Apache Kafka 的发展历程。有的时候我们会觉得说了解一个系统或框架的前世今生似乎没什么必要,直接开始学具体的技术不是更快更好吗?其实,不论是学习哪种技术,直接扎到具体的细节中,亦或是从一个很小的点开始学习,你很快就会感到厌烦。为什么呢?因为你虽然快速地搞定了某个技术细节,但无法建立全局的认知观,这会导致你只是在单个的点上有所进展,却没法将其串联成一条线进而扩展成一个面,从而实现系统地学习。我这么.

2021-03-17 14:55:58 481

原创 win安装gradle

为了idea 调试你kafka,本地安装gradle1 环境win102 准备jdk 8 需要提取安装配置好(gradle的前置条件)gradle 安装包 下载binary-only即可3 安装配置将安装包解压到指定路径,比如我在D:\ProgramFiles 下系统环境变量中配置GRADLE_HOME系统环境变量修改Path,在原始内容基础上加入%GRADLE_HOME%\bin;,必须以分号结束4 测试配置是否成功打开一个新的cmd命令窗口或者power.

2021-03-17 14:02:16 220

原创 redis实战(8):页面缓存

在动态生成网页的时候,通常会使用模板语言来简化网页的生成操作。通过浏览数据进行分析,发现自己所处理的95%的web页面每天最多只会改变一次,这些页面的内容实际上并不需要动态生成,而我们的工作就是想办法不再生成这些页面,减少网站再动态生成内容上面说话的时间,可以降低网站相同负载所需的服务器数量,并网网站的速度变得更快。所有标准的python应用框架都提供了在处理请求之前后者之后添加层的能力,这样的层通常叫做中间件或者插件,我们将创建一个这样的层来调用redis缓存函数:对于宇哥不能被缓存的请求,函数直接生产

2021-03-15 11:25:43 332

原创 redis实战(7):购物车

网址(Netscape)公司在20世纪90年代中期先在网络中使用了cookie.这些cookie 最终 变成了我们在上一节讨论的登录会话cookie。cookie 最初的意图在于为网络零件商(web retailer) 提供种购物乍,让用户可以收集他们想要购买的商品。在cookie之前.有过儿种不同的购物车 解决方案,但这些方案个都不太好用。

2021-03-15 10:38:56 918

原创 redis实战(6):登录和cookie缓存

1 检查会话当我们登录互联网服务(比如银行账户或者电子邮件)的时候.这些服务都会使用cookie来记录我们的身份。cookie又少量数据组成,网站会要求我们的浏览器存储这些数据, 并在每次服务发送请求时将这些数据传回给服务。对于用来登录的cookie.有两种常见的方 法可以将登录信息存储在cookie里面:一种是签名(signed ) cookie,另一种是令牌(token) cookie。签名cookie通常会存储用户名,可能还有用户ID、用户最后一次成功登录的时间.以及网 站觉得有用的其他任何信息除

2021-03-13 21:10:23 1002

原创 redis实战(5):对文章进行分组

群组功能有两个部分组成,一个不是负责记录文章属于哪个群组,另外一个部分负责取出群组内的文章;1 从群组中添加/删除文章为了记录各个群组都保存了哪些文章,需要为每个群组创建一个集合,将所属同一个群组的文章ID保存到该集合def add_remove_groups(conn,article_id,to_add=[],to_remove[]){ article = "article:"+article_id for group in to_add conn.sadd("group:"+grou.

2021-03-13 16:43:15 526

原创 redis实战(4):发布并获取文章

发布并获取文章

2021-03-13 15:31:00 255

原创 redis实战(3):对文章进行投票

如果一个文章获得200+票(up vote),则是一篇有趣的文章;假如每天发布1k文章,其中50篇是有趣的文章,则把这50篇放到文章列表的前100位,至少一天。

2021-03-13 12:00:02 412 2

转载 redis实战(2):Redis可视化客户端汇总

转自 https://cloud.tencent.com/developer/article/1596714因为 Redis 官方只提供了命令行版的 Redis 客户端 redis-cli,以至于我们在使用的时候会比较麻烦,通常要输入一堆命令,而且命令行版的客户端看起来也不够直观,基于以上两个原因我们需要找一个可视化的 Redis 客户端,下面是我这些年使用过的一些 Redis 可视化客户端,分享给大家。1.RedisClient是否收费:免费项目介绍:Java 编写的 Redis 连接.

2021-03-12 13:45:11 330

原创 redis实战(1):redis三个java客户端选择

jedis、redisson、lettuce比较

2021-03-12 11:42:50 533

原创 redis(28):安全

Redis的作者Salvatore Sanfilippo曾经发表过Redis宣言 ,其中提到Redis以简洁为美。 同样在安全层面Redis也没有做太多的工作。1.可信的环境Redis的安全设计是在“Redis运行在可信环境”这个前提下做出的。在生产环境运行时不 能允许外界直接连接到 Redis 服务器上,而应该通过应用程序进行中转,运行在可信的环境 中是保证Redis安全的最重要方法。Redis的默认配置会接受来自任何地址发送来的请求,即在任何一个拥有公网IP的服务器 上启动 Redis .

2021-03-07 16:08:42 2635 35

原创 redis(27):三种集群模式总结

前面已经看完redis的三种模式,今天比较一下Redis 支持三种集群方案主从复制模式Sentinel(哨兵)模式 Cluster 模式1. 主从复制模式1.1 主从复制的作用通过持久化功能,Redis保证了即使在服务器重启的情况下也不会丢失(或少量丢失)数据,因为持久化会把内存中数据保存到硬盘上,重启会从硬盘上加载数据。 但是由于数据是存储在一台服务器上的,如果这台服务器出现硬盘故障等问题,也会导致数据丢失。为了避免单点故障,通常的做法是将数据库复制多个副本以部署在不同的服.

2021-03-06 22:21:25 547 12

原创 redis(26):集群模式原理

集群模式原理1. Redis集群方案Redis Cluster 集群模式通常具有 高可用、可扩展性、分布式、容错 等特性。Redis 分布式方案一般有两种:1.1 客户端分区方案客户端 就已经决定数据会被 存储 到哪个 redis 节点或者从哪个 redis 节点 读取数据。其主要思想是采用 哈希算法 将 Redis 数据的 key 进行散列,通过 hash 函数,特定的 key会 映射 到特定的 Redis 节点上。客户端分区方案 的代表为 Redis Sharding,Redis S.

2021-03-06 15:35:49 297 2

原创 redis(25):集群模式的安装部署

前面已经学习了redis集群模式的一些概念,今天实现win下redis 集群模式的安装部署;1. 规划1.1 环境win10Redis-x64-5.0.10,redis win下安装见这里Ruby Installer v2.3.3 x64 (ruby安装略)1.2 规划设计三主三从主(Master)从(Slave)7100710172007201730073012. 配置新建6个空文件夹最后文件夹结构如下图每个文件夹里.

2021-03-06 10:58:11 2368 14

原创 redis(24):集群

即使使用哨兵,此时的 Redis 集群的每个数据库依然存有集群中的所有数据,从而导致 集群的总数据存储量受限于可用存储内存最小的数据库节点,形成木桶效应。由于Redis中的所有数据都是基于内存存储,这一问题就尤为突出了,尤其是当使用 Redis 做持久化存储服 务使用时。1. 概述对 Redis 进行水平扩容,在旧版 Redis 中通常使用客户端分片来解决这个问题,即启动 多个 Redis 数据库节点,由客户端决定每个键交由哪个数据库节点存储,下次客户端读取该 键时直接到该节点读取。这样可以实现.

2021-03-04 11:35:21 311 10

原创 redis(23):集群之哨兵-部署与使用

上篇文章学习了redis哨兵模式的概念+原理,现在继续学习下哨兵的部署和使用1、部署1.1 规划1.2 环境1.3 配置2、使用

2021-03-04 09:33:31 250 3

原创 redis(22):redis主从模式搭建

Redis的集群有三种模式,分别是主从复制、哨兵模式和Cluster模式。主从复制模式无法做到高可用,因此Redis提供了哨兵模式,以监听各个节点的状态,防止节点故障。sentinel的搭建相比主从复制模式复杂一些,但是相比Cluster模式,又不需要安装如ruby环境,所以还是比较简单的。本文主要涉及搭建主从模式的redis;1、部署1.1 环境win10redis Redis-x64-5.0.101.2 规划redis的安装参考这里一主二从 (原来6379端口的redis留作.

2021-03-03 13:52:41 387 4

原创 redis(21):集群之哨兵

在一个典型的一主多从的Redis系统中,从数据库在整个系统中起到了数据冗余备份和读写分离的作用。当主数据库遇到异常中断服务 后,开发者可以通过手动的方式选择一个从数据库来升格为主数据库,以使得系统能够继续 提供服务。然而整个过程相对麻烦且需要人工介入,难以实现自动化。 为此,Redis 2.8中提供了哨兵工具来实现自动化的系统监控和故障恢复功能。 注意 Redis 2.6 版也提供了哨兵工具,但此时的哨兵是1.0版,存在非常多的问题,在任 何情况下都不应该使用这个版本的哨兵。所以本文中介绍的哨兵都是Red.

2021-03-03 09:43:49 319 10

原创 redis(20):win下将redis安装为本地服务

前面介绍了redis在各个OS下的安装,但是一般开发人员都是在win下,突发奇想,把redis server安装成win的服务,后面开机自动启动;1、环境win10redis-5.0.102、效果redis-server安装成win的一个服务,电脑开机后自动启动;3、步骤3.1 将redis-server注册成服务在 cmd 命令框下,移动到 C:\Windows\System32\cmd.exe 目录,安装 Redis 为本地服务:redis-server.exe --s.

2021-03-02 11:59:37 212 7

原创 redis(19):集群之复制原理

作为一个小型项目,使用一台 Redis 服务器已经非常足够了,然而现实中的 项目通常需要若干台Redis服务器的支持:从结构上,单个 Redis 服务器会发生单点故障,同时一台服务器需要承受所有的请求负载。这就需要为数据生成多个副本并分配在不同的服务器上;从容量上,单个 Redis 服务器的内存非常容易成为存储瓶颈,所以需要进行数据分 片。同时拥有多个 Redis 服务器后就会面临如何管理集群的问题,包括如何增加节点、故障 恢复等操作。 为此,本章将依次详细介绍 Redis 中的复制、哨兵(.

2021-03-01 16:57:28 1995 7

原创 redis(18):持久化-AOF方式

继续看redis持久化的第二种方式 AOF一、概述当使用Redis存储非临时数据时,一般需要打开AOF持久化来降低进程中止导致的数据丢失。AOF可以将Redis执行的每一条写命令追加到硬盘文件中,这一过程显然会降低Redis 的性能,但是大部分情况下这个影响是可以接受的,另外使用较快的硬盘可以提高AOF的性能。二、开启AOF默认情况下Redis没有开启AOF(append only file)方式的持久化,可以通过 appendonly 参数启用:appendonly yes开启A.

2021-02-19 11:56:00 588 46

原创 redis(17):持久化-RDB方式

Redis的强劲性能很大程度上是由于其将所有数据都存储在了内存中,然而当Redis重启 后,所有存储在内存中的数据就会丢失。在一些情况下,我们会希望 Redis 在重启后能够保 证数据不丢失,例如:将Redis作为数据库使用时。将 Redis 作为缓存服务器,但缓存被穿透后会对性能造成较大影响,所有缓存同时 失效会导致缓存雪崩,从而使服务无法响应。这时我们希望 Redis 能将数据从内存中以某种形式同步到硬盘中,使得重启后可以根据 硬盘中的记录恢复数据。这一过程就是持久化。Redis支持.

2021-02-19 09:02:21 2815 20

原创 redis(16):节省空间

Jim Gray 曾经说过:“内存是新的硬盘,硬盘是新的磁带。”内存的容量越来越大, 价格也越来越便宜。2012年年底,亚马逊宣布即将发布一个拥有240GB内存的EC2实例,如果放到若干年前来看,这个容量就算是对于硬盘来说也是很大的了。即便如此,相比于硬盘 而言,内存在今天仍然显得比较昂贵。而 Redis 是一个基于内存的数据库,所有的数据都存 储在内存中,所以如何优化存储,减少内存空间占用对成本控制来说是一个非常重要的话 题。一、精简键名和键值精简键名和键值是最直观的减少内存占用的方式,如.

2021-02-18 22:46:38 1414 17

原创 redis(15):管道

客户端和Redis使用TCP协议连接。不论是客户端向Redis发送命令还是Redis向客户端返 回命令的执行结果,都需要经过网络传输,这两个部分的总耗时称为往返时延。根据网络性能不同,往返时延也不同,大致来说到本地回环地址(loop backaddress)的往返时延在数量 级上相当于 Redis 处理一条简单命令(如 LPUSH list 1 2 3)的时间。如果执行较多的命令,每个命令的往返时延累加起来对性能还是有一定影响的。一、不使用管道时在执行多个命令时每条命令都需要等待上一条命令执行.

2021-02-18 16:04:55 317 4

原创 redis(14):消息通知

如何在博客中实现邮件订阅功能。邮件订阅功能太好实现了,无非是在博客首页放一个文本框供访客输入自己的邮箱地址,提交后博客会将该地址存入 Redis 的一个集合类型键中(使用集合类型是为了保证同一 邮箱地址不会存储多个)。每当发布新文章时,就向收集到的邮箱地址发送通知邮件。想的简单,可是做出来后却发现了一个问题:输入邮箱地址提交后,页面需要很久时间才能载入完。原来为了确保用户没有输入他人的邮箱,在提交之后程序会向用户输入的邮箱发送 一封包含确认链接的邮件,只有用户单击这个链接后对应的邮箱地址才会.

2021-02-18 15:11:25 484 3

原创 redis(13):排序

已经知道可以使用集合类型来存储文章标签数据,但是如果想要标签排序呢?一、有序集合的集合操作集合类型提供了强大的集合操作命令,但是如果需要排序就要用到有序集合类型。Redis 的作者在设计Redis的命令时考虑到了不同数据类型的使用场景,对于不常用到的或者在不损失过多性能的前提下可以使用现有命令来实现的功能,Redis就不会单独提供命令来实现。这 一原则使得Redis在拥有强大功能的同时保持着相对精简的命令。有序集合常见的使用场景是大数据排序,如游戏的玩家排行榜,所以很少会需要获得键中的全部数据.

2021-02-16 21:45:19 1432 14

原创 redis(12):过期时间

一、命令介绍在实际的开发中经常会遇到一些有时效的数据,比如限时优惠活动、缓存或验证码等, 过了一定的时间就需要删除这些数据。在关系数据库中一般需要额外的一个字段记录到期时 间,然后定期检测删除过期数据。而在Redis中可以使用 EXPIRE命令设置一个键的过期时 间,到时间后Redis会自动删除它。EXPIRE 命令的使用方法为 EXPIRE key seconds,其中 seconds 参数表示键的过期时 间,单位是秒。EXPIRE命令返回1表示设置成功,返回0则表示键不存在或设置失败;如

2021-02-12 23:10:26 1939 23

原创 redis(11):事务

关系型数据库中有事务的概念,redis一样也有;一、概念Redis中的事务(transaction)是一组命令的集合。事务同命令一样都是 Redis 的最小执 行单位,一个事务中的命令要么都执行,要么都不执行。事务的应用非常普遍,如银行转账 过程中A给B汇款,首先系统从A的账户中将钱划走,然后向B的账户增加相应的金额。这两 个步骤必须属于同一个事务,要么全执行,要么全不执行。否则只执行第一步,钱就凭空消 失了,这显然让人无法接受。事务的原理是先将属于一个事务的命令发送给Redis,然后再让.

2021-02-10 14:10:31 1456 19

原创 redis(10):redis五种数据结构应用场景

看完了redis的数据结构 ,在学习下各个数据结构的试用场景;一、string字符串有以下几个典型应用场景:缓存功能 最常用的功能,将热数据的查询结果缓存到redis;计数 也是减少数据库压力的方法之一,比如文章的点击量,统计网站访问次;共享session 这个在分布式或者负载均衡的web服务中非常常用,用户被负载均衡到不同服务器上的时候并不希望session丢失而重新登录;可以用redis做一个session管理的服务;同时还可以规定用户需要重新登录的时间间隔;限速 比如短信接口,.

2021-02-09 08:59:27 598 14

原创 redis(9):Redis 5种数据类型vs java类型

String ----- Map<String,String>Hash ----- Map<String,Map<String,String>>List----- Map<String,List< String >> 里面list 有序链表Set -------- Map < String , Set< String >> 里面set元素不能重复且无序zset -------- Map < String , S

2021-02-08 10:45:52 33276 8

原创 redis(8):数据结构-zset有序集合类型

一、介绍二、命令三、实践四、命令拾遗

2021-02-06 22:39:34 13117 4

原创 redis(7):数据结构-set集合类型

一、介绍二、命令三、实践四、命令拾遗

2021-02-06 00:19:11 11144 2

原创 redis(6):数据结构-List列表类型

一、介绍二、命令三、实践四、命令拾遗

2021-02-05 13:53:23 13116 11

原创 redis(5):数据结构-Hash散列类型

一、介绍哈希等价于Java语言的HashMap或者是Python语言的dict,在实现结构上它使用二维结构,第一维是数组,第二维是链表,hash的内容key和value存放在链表中,数组里存放的是链表的头指针。通过key查找元素时,先计算key的hashcode,然后用hashcode对数组的长度进行取模定位到链表的表头,再对链表进行遍历获取到相应的value值,链表的作用就是用来将产生了「hash碰撞」的元素串起来。Java语言开发者会感到非常熟悉,因为这样的结构和HashMap是没有区别的。哈希的第

2021-02-04 22:49:24 11691 11

原创 多个jdk共存与切换

一、多个jdk工作1.需求一些新的项目是jdk8,比较老的项目是jdk7,于是需要开发机器安装2个jdk2.安装环境:win10下载jdk8 ,将jdk与jre安装到 java8目录下,效果如下下载jdk7 ,将jdk与jre安装到 java7目录下,效果如下3.设置新增变量 JAVA_7_HOME ,值为D:\ProgramFiles\Java\java7\jdk1.7.0_80新增变量 JAVA_8_HOME,值为 D:\ProgramFiles\Java\java8\j

2021-02-04 14:51:08 11604 23

原创 redis(4):数据结构-String字符串

一、热身二、字符串类型三、散列类型四、列表类型五、集合类型六、有序集合类型

2021-02-03 23:04:35 11274 4

原创 tomcat(1):解决Tomcat控制台输出信息乱码

老板突然给了一个很老的系统,需要维护,涉及到tomcat,启动时候发现tomcat乱码,解决并记录下一、环境win10tomcat 7(具体是apache-tomcat-7.0.107)二、现象启动tomcat,控制台乱码三、解决方法找到 \apache-tomcat-7.0.107\conf\logging.properties,将java.util.logging.ConsoleHandler.encoding = UTF-8注释掉,或者修改GBK四、解释tomca.

2021-02-03 14:17:54 11207 10

原创 redis(3):安装

一、安装二、启动和停止三、命令行客户端四、配置五、多数据库

2021-02-02 23:18:28 10955 6

原创 datax(27):不太常见配置项querySql、preSql、postSql、splitPk

每个datax的json都有自己的json配置文档,基本大同小异,有几个配置较为少用,但是用了之后,真香~一、querySql1、使用教程描述:在有些业务场景下,where这一配置项不足以描述所筛选的条件,用户可以通过该配置型来自定义筛选SQL。当用户配置了这一项之后,DataX系统就会忽略table,column这些配置型,直接使用这个配置项的内容对数据进行筛选,例如需要进行多表join后同步数据,使用select a,b from table_a join table_b on tabl.

2021-02-02 16:11:51 70587 15

大型网站技术架构.xmind

大型网站技术架构

2021-05-19

JVM脑图-必须名称要十个字

JVM脑图

2021-03-11

java-pdf.rar

java-pdf.rar

2021-03-11

redis-PDF.rar

redis-PDF.rar

2021-03-11

kingbase8-8.2.0.jar

kingbase8-8.2.0.jar,是链接人大金仓数据库的jar文件

2021-01-13

ePass1000ND 开发包.rar

对ukey中双向认证的key进行正删查,ukey插上电脑后自动识别ukey中的证书

2020-10-14

https双向认证ukey管理软件

https双向认证ukey管理软件

2020-10-14

mysql-5.5.20-winx64

mysql-5.5.20-winx64

2016-09-01

测试驱动开发(中文完整版-带书签)

测试驱动开发(中文完整版-带书签)

2016-08-30

单元测试之道Java版:使用JUnit

单元测试之道Java版:使用JUnit

2016-08-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除