自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 Redis学习笔记之十三:Redis集群

1、Redis开启集群    默认情况下Redis并没有开启集群模式,如果想要开启,需要将配置中的cluster-enabled修改为yes便开启了集群模式。在这个模式下与单机模式有点区别:只能使用0号数据库。 Redis在启动时会默认创建16个数据库,编号 0 ~ 15,使用指令SELECT可以选择数据库,默认是0号,如果你的Redis开启了AOF,打开AOF文件最上面的指令一定是SELEC

2017-11-10 18:02:17 941 1

原创 JDK8--HashMap源码阅读

HashMap作为Java最常用的集合类之一,内部采用了数组 + 链表 + 树的形式来存储Key-Value。内部结构如下图所示:    链表在大于一定长度时会转换为树形式存储,这个长度默认是8.1、HashMap的初始化    HashMap提供了多个构造函数进行初始化,各个构造函数如下:/** * initialCapacity 容量,会作为table数组的长度,默认

2017-11-08 18:39:21 369

原创 Redis学习笔记之十二:Redis复制(数据同步)

虽然Redis提供了持久化的功能保证了在Redis服务器重启时数据不会丢失,但保存在磁盘上的数据文件依旧有可能因为磁盘损坏而丢失,所以Redis提供了复制功能来在多台Redis服务器上同步数据,这样即使有一台Redis服务器保存数据的文件损坏,数据也不会丢失。    同步后的Redis数据库分为两类:主数据库(master),从数据库(slave),它们结构如下图:    主从是相

2017-11-08 11:04:16 1868

原创 Redis学习笔记之十一:Redis数据持久化

Redis在用作缓存服务器、队列等之前,是先作为数据库来使用的,Redis开发的初衷也是为了替代Mysql。Redis作为数据库,当然也支持将内存中的数据写到磁盘上或者从磁盘上读取数据。Redis支持写入两种格式的文件,RDB和AOF。    1、RDB写入方式    Redis默认是使用RDB方式进行持久化的,打开redis.conf配置文件,可以看到以下配置:save 900 1

2017-11-07 11:24:07 1518

原创 Redis学习笔记之十:Redis用作消息队列

Redis不仅可作为缓存服务器,还可用作消息队列。它的列表类型天生支持用作消息队列。如下图所示:    由于Redis的列表是使用双向链表实现的,保存了头尾节点,所以在列表头尾两边插取元素都是非常快的。    所以可以直接使用Redis的List实现消息队列,只需简单的两个指令lpush和rpop或者rpush和lpop。简单示例如下:存放消息端(消息生产者):消息

2017-11-06 10:17:06 86792 10

原创 Redis学习笔记之九:管道

由于Redis客户端和服务端采用TCP连接,所以每次放送一条指令都需要建立一次连接。但建立连接是比较昂贵的操作,所以Redis底层协议对管道提供了支持,用于在一次连接中发送多条指令,你可以将其与HTTP协议中的长连接进行对比(一次连接发起多个请求)。    测试代码如下:package org.yamikaze.redis.test;import org.junit.After;im

2017-11-04 20:13:31 962

原创 Redis学习笔记之八:Redis的事务

Redis作为数据库,当然也有事务。但它的事务与Mysql等关系型数据库的事务不同。    Redis中的事务同Redis的执行命令一样,都是最小执行单元,这是与Mysql的第一点区别。为什么?因为Mysql默认开启了自动事务提交,每一条Sql语句都会被当做一个事务提交,而关闭Mysql事务后需要使用commit指令提交后才开启下一个事务。但Redis中的指令就是一个最小执行单元,这点可以认为

2017-11-03 14:28:35 731

原创 Redis学习笔记之七:有序集合类型

Redis最后一种类型是有序集合类型ZSet,即排序的Set,但又与Set不同的是,它比Set多一个字段分数(score)用于排序等操作,从这点来看,相当于Java中的TreeMap,但与Java的TreeMap不同的是,TreeMap排序是指定Comparator对象来排序,通过比较Key来排序,最后构成一棵树。而Redis的ZSet在存储结构上类似于Set。    1、设值/取值

2017-11-02 15:06:39 3242

原创 Redis学习笔记之六:集合类型Set

Redis的Set类型可以对比Java中的Set,但两者又有所不同。下面开始练习操纵Set类型的指令吧!    1、设置/取值(add)    SADD 指令用于向集合中插入元素,返回值为成功插入的元素个数。    可以看到,集合中不能有重复的元素,所以返回值为3.    使用SMEMBERS指令取值(整个Set)    Redis的Set也有有序的。不

2017-11-02 13:30:43 1805 1

原创 Redis学习笔记之五:散列类型

Redis的散列类型可以看做Java中的Map结构,后文简称Map,同时Redis中操纵Map的指令均已H开头。    可以将Map当做Java中的HashMap,这样便于快速理解。既然将其看做Map,那Redis的这个Map肯定与Java中的Map有相似之处,如下图:    可以看到Key对应的Value是一个Map,而Map内部又有Key-Value键值对。内部的Key也是不能

2017-11-01 17:50:16 1293

原创 Redis学习笔记之四:列表类型

Redis的列表类型可以跟编程语言中的列表对应,如果要与Java对应的话,可以认为Redis的列表相当于Java中的Stack吧,但在实现上可以认为相当于Java的LinkedList,但Redis的这个LinkedList是双向的,下面看看Redis关于List的操作吧!        1、设值/取值    由于List相当于一个双向的LinkedList,所以可以往这个链表的两端都

2017-11-01 16:15:05 582

原创 Redis学习笔记之三:String类型

String类型是Redis最重要的数据类型,其他4种类型都是以String作为基础的。Redis为操纵String类型的数据提供了许多指令,指令数量算是5种类型最多的了。虽然Redis提供的String指令没有Java等编程语言中String的API丰富,但在我看来,其实各有千秋,你可以使用一个简单的指令完成Java中需要10行左右的代码才能完成的事。但String类型存储是有限制的,Value

2017-11-01 11:36:57 784

空空如也

空空如也

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

TA关注的人

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