Redis
Bryce_Huang
竹杖芒鞋轻胜马,一蓑烟雨任平生
展开
-
Redis的基础事务与ABA问题
文章目录Redis的基础事务一,Redis的事务命令二,Redis事务的基本流程2.1,没有添加监听的基本事务的执行流程2.1.1 控制台的执行效果2.1.2 代码实现简单事务流程2.2,添加监听的事务的执行流程2.2.1 执行流程图2.2.2 添加监视的控制台实现三,Redis不会产生ABA问题3.1 redis参考了多线程中的CAS3.2 什么是ABA问题Redis的基础事务一,Redis...原创 2020-02-27 20:11:08 · 1055 阅读 · 0 评论 -
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisTemplat
今天在将redis和spring整合到一起是遇到了以下错误:错误提示:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisTemplate' defined in class path resource [applicationContext.xml]: Inv...原创 2020-02-25 14:30:46 · 902 阅读 · 0 评论 -
redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refus
今天在连接redis时出现了一个奇怪的错误。如下:public class RedisTest {@Test public void redisTest(){// 连接Redis Jedis jedis = new Jedis("localhost",6379);// jedis.auth("h980522");int i = 0;try { lon...原创 2020-02-24 18:51:50 · 1898 阅读 · 0 评论 -
Redis学习(9)——RDB持久化
redis是一个内存数据库,数据库的状态被存储在内存中。但是这就存在一个问题:如果没存在磁盘中,一但将服务器关闭,就会使得服务器中的数据库状态消失。为了解决这样的问题,Redis提供了RDB持久化功能,将内存中的数据库状态保存到磁盘中,当服务器关闭,数据库状态也不会意外丢失。RDB持久化功能会生成一个压缩了的二进制文件、RDB文件。这个文件保存着生成RDB文件时的数据库状态,当需要时,RDB文...原创 2019-04-21 23:08:21 · 283 阅读 · 0 评论 -
Redis学习(8)——数据库
一,服务器中的数据库Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构的db数组中,而db数组的每一项都是一个redis.h/redisDb结构,每个redisDB就代表一个数据库。下面是来自https://blog.csdn.net/men_wen/article/details/71088263 的代码:(这是一位将Redis源码进行了详尽分析...原创 2019-04-15 23:02:12 · 244 阅读 · 0 评论 -
Redis学习(7)——对象(redisObject)
一,Redis对象概述我们知道Redis中使用了,简单动态字符串,双端链表,跳跃表,字典,压缩列表,整数集合,快速列表等数据结构,但是对于Redis,它并没用直接使用这些数据结构来实现键值对数据库,而是以它们为基础创建了一个对象系统。这个对象系统包括了字符串对象、列表对象、哈希对象、集合对象和有序集合对象,这五个类型的对象。这些对象的实现都是基于上述的数据结构实现的。基于五个不同对象的键值...原创 2019-04-08 15:24:18 · 689 阅读 · 1 评论 -
Redis学习(4)——跳跃表(skiplist)
一,何为跳跃表跳跃表(skiplist)是一种有序的数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。它的效率可以媲美平衡树,跳跃表的平均复杂度O(logN)最坏情况复杂度O(N),并且其原理和代码都要比平衡树更加简单,因此很多地方多用跳跃表代替平衡树。二,在Redis中的应用1,Redis使用跳跃表作为有序集合键的底层实现的数据结构之一。1)当有...原创 2019-04-01 21:03:45 · 716 阅读 · 1 评论 -
Redis学习(6)——压缩列表(ziplist)
今天学习Redis的压缩列表(ziplist),看着书上写的:压缩表是列表键和哈希键的底层实现之一。于是自己就在Redis上试了一下,可是在测试列表键的时候却发现查看属性,发现不是“ziplist”而是“qucklist”,于是自己又试了不同的小整数和短字符串,发现都是“qucklist”实现的。查询后才知道,Redis已经将3.2之后的版本的列表的底层实现由qucklist实现,取代了曾经的zi...原创 2019-04-06 16:17:44 · 5160 阅读 · 2 评论 -
Redis学习(3)——字典
一,字典的简介字典,别名符号表(symbol table),关联数组(associative array)或映射(map),是一种用于保存键值对的抽象数据结构。C语言中虽然没有内置字典这种数据结构,但是Redis自己在底层实现了这种数据机构,并且其数据库就是使用字典来作为底层实现。Redis中的键(key)和值(value)相互关联(这也是键映射为值),被称为键值对,其实这就是数据结构字典的体...原创 2019-03-31 16:10:49 · 210 阅读 · 0 评论 -
Redis学习(2)——链表(list)
链表的使用十分广泛,甚至很多高级编程语言都内置了这种数据结构。但是C语言却不没有。不过C语言编写的Redis却自己构建了链表这种数据结构在自己内部。127.0.0.1:6379> LPUSH list a b c d e //向链表中添加a b c d e f(integer) 5 //此时链表中的数据个数...原创 2019-03-30 19:34:17 · 191 阅读 · 0 评论 -
Redis学习(1)——简单动态字符串(simple dynamic string,SDS)
1,Redis简单动态字符串的简介Redis没有直接使用C语言传统的字符串表示(Redis使用ANSIC语言语言编写),而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型,并将SDS用作Redis的默认字符串表示。(C语言字符串在Redis中也有应用,不过只用在一些无须对字符串值进行修改的地方,如Redis日志的打印)2,SDS和键值对的...原创 2019-03-30 16:40:40 · 271 阅读 · 0 评论 -
Redis学习(5)——整数集合(intset)
整数集合是Redis用于保存整数值的集合抽象数据结构。在Redis中,当一个集合的只包含整数值元素时,并且这个集合的元素数量不多时,就会使用整数集合去作为集合键的底层实现。例:redis-> SADD numbers 1 3 5 7 9(integers) 5redis-> OBJECT ENCODING numbers"intset"一,整数集合的实现原理及其源码...原创 2019-04-03 21:11:41 · 268 阅读 · 0 评论