笔者别的Redis方面的书没有读过,读完这一本,力荐,作者黄建宏,对Redis不太熟悉的,但是对编程稍微有些基础的,全部

读下来应该无压力。作者的编写和讲解非常详细,覆盖的面基本上都讲到,之前一直都是零零碎碎的阅读别人的帖子,总感觉都是

碎的,连接不起来,作者分了四部分来讲分别为数据结构与对象,单机数据库的实现,多机数据库的实现,独立功能的实现。

  读完一遍,整体感觉软件设计并非我想象的那般正常人无法理解或者无法想到的,很多设计是正常逻辑"查漏补缺",类似Hash

结构的扩容,主从复制过程中的缓冲区设计其实也是大家能想到的,从A转移到B,转移需要时间,这个时间又有新的数据进来怎么办,

这个问题一般人也都想得到,并且处理方式也正是用缓冲区存下新进来的数据,并做一个标记,告诉它现在开始转移了,后进来的数

据存在这儿,存到一定时间点后转移到目标区域等等。

  在数据结构与对象这部分,先介绍了6种底层数据结构,了解数据结构的读起来不会太艰难,他们分别是简单动态字符串、整数集

合字典,链表,跳跃表,压缩列表,这6种数据结构是Redis大多功能的底层实现。以这6种数据结构为底层实现,Redis创建了自己的对

象系统,这才是我们经常用到的字符串对象,列表对象,哈希对象,集合和有序集合对象,Redis的键值对都是对象,也就是键对象和

值对象,Redis总是以字符串对象作为键对象,这个和java中通常以String作为键的理由相似,多次散列要得到相同的整数结果。

  Redis为什么快?因为他是一个内存数据库,既然是内存数据库,那么就要考虑宕机问题,宕机了数据怎么办?存磁盘,Redis支持

持久化,有两种方式,基于键值对保存的RDF方式和基于执行写命令的AOF方式

  最精彩的部分属于第三部分,也就是Sentinel,复制和集群这3章,这部分的设计看的让人有点天马行空的感觉,尤其是选举领头羊的

这一部分,简直有点像读小说一样,大家互相发消息,互相收消息,互相判断对方状态,突然这厮不行了,A说,领头羊不行了,你们怎

么看?B说,我这里也没他消息,估计吧?C说,擦,我也没,难道头挂了?》》》过了一会儿,大家意识到,领头羊真的不行了,于是

开始投票选举争取拉票,第一位过半(也可能不是过半,1/3?)的被选为新的领头羊,其他人挨个儿滴血效忠。

  上面瞎扯了很多,总体读下来还是有一番波澜的,高潮部分,就是第三部分,Redis的命令很多,但是分类比较清晰,上手也比较容

易,目前集成在java项目中的两种方式:Jedis和Spring集成的RedisTemplate.后面有时间我会继续出系列来些干货,排版没花时间,有缘

人见~~

  

Redis系列一之《Redis设计与实践》整体观感的更多相关文章

  1. Redis系列(四):Redis的复制机制(主从复制)

    本篇博客是Redis系列的第4篇,主要讲解下Redis的主从复制机制. 本系列的前3篇可以点击以下链接查看: Redis系列(一):Redis简介及环境安装 Redis系列(二):Redis的5种数据 ...

  2. Redis系列(三):Redis的持久化机制(RDB、AOF)

    本篇博客是Redis系列的第3篇,主要讲解下Redis的2种持久化机制:RDB和AOF. 本系列的前2篇可以点击以下链接查看: Redis系列(一):Redis简介及环境安装. Redis系列(二): ...

  3. Redis系列(五):Redis的过期键删除策略

    本篇博客是Redis系列的第5篇,主要讲解下Redis的过期键删除策略. 本系列的前4篇可以点击以下链接查看: Redis系列(一):Redis简介及环境安装 Redis系列(二):Redis的5种数 ...

  4. Redis系列(一)StackExchange.Redis的使用

    Redis系列(一)StackExchange.Redis的使用 一.DLL安装 用NuGet搜索StackExchange.Redis,然后下载就可以. ConnectionMultiplexer对 ...

  5. Redis系列(二):Redis的5种数据结构及其常用命令

    上一篇博客,我们讲解了什么是Redis以及在Windows和Linux环境下安装Redis的方法, 没看过的同学可以点击以下链接查看: Redis系列(一):Redis简介及环境安装. 本篇博客我们来 ...

  6. Java Redis系列2 (redis的安装与使用+redis持久化的实现))

    Java Redis系列2 (redis的安装与使用+redis持久化的实现) 什么是Redis? Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,官方提供测试数据,50 ...

  7. Redis系列(一):Redis简介及环境安装

    提到Redis,大家肯定都听过,并且应该都在项目中或多或少的使用过,也许你觉得Redis用起来挺简单的呀,但如果有人问你下面的几个问题(比如同事或者面试官),你能回答的上来吗? 什么是Redis? R ...

  8. Redis系列-远程连接redis并给redis加锁

    假设两台redis服务器,ip分别为:192.168.1.101和192.168.1.103,如何在101上通过redis-cli访问103上的redis呢?在远程连接103之前,先讲下redis-c ...

  9. 组件-------(一)redis系列--安装部署redis+实现redis分布式缓存 java+Spring+redis

    目的:解决单机session不能共享问题,插入查询数据库时间效率问题,实现分布式缓存. 准备材料:Redis 下载链接 http://pan.baidu.com/s/1dEGTxvV 相关jar包如果 ...

  10. Redis系列一(Redis环境的搭建)

    最近工作中需要Redis缓存,由于也是第一次弄,在网上找了很多资料,在此记录一下. 安装Redis 我使用的系统是CentOS 6.6,安装步骤如下: 1.下载源码,解压后编译源码.(如果没有 wge ...

随机推荐

  1. JDBC_事务说明

    JDBC控制事务:1.事务:一个包含多个步骤的业务操作,如果这个业务操作被事务管理则多个步骤同时成功或同时失败2.操作: 1.开启事务 2.提交事务 3.回滚事务3.使用Connection对象来管理 ...

  2. Hive系统架构

  3. JS对象 Date 日期对象 日期对象可以储存任意一个日期,并且可以精确到毫秒数(1/1000 秒)。 定义一个时间对象 : var Udate=new Date();Date()的首字母须大写

    Date 日期对象 日期对象可以储存任意一个日期,并且可以精确到毫秒数(1/1000 秒). 定义一个时间对象 : var Udate=new Date(); 注意:使用关键字new,Date()的首 ...

  4. Bugs Integrated, Inc.

    Bugs Integrated, Inc. 给出一个\(n\times m\)的矩形网格图,给出其中K个障碍物的位置,求其中最多能摆的\(2\times 3\)的矩形的个数,\(n\leq 150,m ...

  5. Spring+Mybatis常见问题随笔

    错误1:无法绑定指定方法 异常堆栈:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 原因 ...

  6. Ubunto 无法连接ssh客服端

    解决办法: (1)查看ip地址是否冲突 我在单位的虚拟机ip地址是192.168.14.85,与其它机器冲突了.改成了192.168.14.83   (2)关闭Ubuntu14.04的防火墙 root ...

  7. R语言中的线性判别分析_r语言 线性判别分析

    R语言中的线性判别分析_r语言 线性判别分析 在R语言中,线性判别分析(Liner Discriminant Analysis,简称LDA),依靠软件包MASS中有线性判别函数lqa()来实现.该函数 ...

  8. 19.SimLogin_case03

    # 模拟登录GitHub import requests from lxml import etree class Login(): def __init__(self): self.headers ...

  9. Jumpserver-1.5.2 安装步骤

    Jumpsever 是飞致云旗下的一块开源的堡垒机.在如今都在上云的趋势下,一款堡垒机非常重要. 官网:http://jumpserver.org/ GitHub:https://github.com ...

  10. Arrays.asList()使用的问题

    在java语言中,把数组转换成List集合,有个很方便的方法就是 List<String> list = Arrays.asList("a","b" ...