redis
文章平均质量分 88
yamikaze
新人
展开
-
Redis学习笔记之十:Redis用作消息队列
Redis不仅可作为缓存服务器,还可用作消息队列。它的列表类型天生支持用作消息队列。如下图所示: 由于Redis的列表是使用双向链表实现的,保存了头尾节点,所以在列表头尾两边插取元素都是非常快的。 所以可以直接使用Redis的List实现消息队列,只需简单的两个指令lpush和rpop或者rpush和lpop。简单示例如下:存放消息端(消息生产者):消息原创 2017-11-06 10:17:06 · 86785 阅读 · 10 评论 -
Redis学习笔记之九:管道
由于Redis客户端和服务端采用TCP连接,所以每次放送一条指令都需要建立一次连接。但建立连接是比较昂贵的操作,所以Redis底层协议对管道提供了支持,用于在一次连接中发送多条指令,你可以将其与HTTP协议中的长连接进行对比(一次连接发起多个请求)。 测试代码如下:package org.yamikaze.redis.test;import org.junit.After;im原创 2017-11-04 20:13:31 · 960 阅读 · 0 评论 -
Redis学习笔记之八:Redis的事务
Redis作为数据库,当然也有事务。但它的事务与Mysql等关系型数据库的事务不同。 Redis中的事务同Redis的执行命令一样,都是最小执行单元,这是与Mysql的第一点区别。为什么?因为Mysql默认开启了自动事务提交,每一条Sql语句都会被当做一个事务提交,而关闭Mysql事务后需要使用commit指令提交后才开启下一个事务。但Redis中的指令就是一个最小执行单元,这点可以认为原创 2017-11-03 14:28:35 · 731 阅读 · 0 评论 -
Redis学习笔记之六:集合类型Set
Redis的Set类型可以对比Java中的Set,但两者又有所不同。下面开始练习操纵Set类型的指令吧! 1、设置/取值(add) SADD 指令用于向集合中插入元素,返回值为成功插入的元素个数。 可以看到,集合中不能有重复的元素,所以返回值为3. 使用SMEMBERS指令取值(整个Set) Redis的Set也有有序的。不原创 2017-11-02 13:30:43 · 1804 阅读 · 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 阅读 · 0 评论 -
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 评论 -
Redis学习笔记之四:列表类型
Redis的列表类型可以跟编程语言中的列表对应,如果要与Java对应的话,可以认为Redis的列表相当于Java中的Stack吧,但在实现上可以认为相当于Java的LinkedList,但Redis的这个LinkedList是双向的,下面看看Redis关于List的操作吧! 1、设值/取值 由于List相当于一个双向的LinkedList,所以可以往这个链表的两端都原创 2017-11-01 16:15:05 · 582 阅读 · 0 评论 -
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 阅读 · 0 评论 -
Redis学习笔记之二:Redis的数据存储结构
Redis提供Key-Value形式的存储格式,与编程语言中的类型不同的是,Key只能是String类型,在Java的Map中,Key可以是除基本类型外的所有类型。Redis的Value类型有5中,Value可以为String,List,散列类型,Set(集合类型),ZSet(有序集合类型)原创 2017-10-31 18:10:27 · 3260 阅读 · 0 评论 -
Redis学习笔记之一:Redis的安装以及Redis的初步使用
什么是Redis? Redis作为一个由C语言开发的NoSql数据库,自2009年完成开发以来,受到了广大程序员和许多公司的青睐。 Redis的主要开发者是Salvastore Sanfilippo,在推出LLOOGG系统后对Mysql的性能感到失望,决定重新为LLOOGG定制一个数据库,并于2009开发完成,且同一年将其开源,这就是Redis的由来。(ps:可能这就是大佬吧原创 2017-10-31 14:02:17 · 1012 阅读 · 0 评论 -
Redis学习笔记之十二:Redis复制(数据同步)
虽然Redis提供了持久化的功能保证了在Redis服务器重启时数据不会丢失,但保存在磁盘上的数据文件依旧有可能因为磁盘损坏而丢失,所以Redis提供了复制功能来在多台Redis服务器上同步数据,这样即使有一台Redis服务器保存数据的文件损坏,数据也不会丢失。 同步后的Redis数据库分为两类:主数据库(master),从数据库(slave),它们结构如下图: 主从是相原创 2017-11-08 11:04:16 · 1868 阅读 · 0 评论 -
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 阅读 · 0 评论