随笔分类 - redis
redis入门
摘要:一、背景 在通用的数据开放平台中,支持用户编写基于Groovy脚本的接口,Groovy脚本中可以查询数据库,然后对数据库中的数据进行一些处理。平台支持任何接口都可以启用缓存。 缓存不是缓存整个脚本的结果,而是只支持缓存数据库查询语句的结果,这样Groovy脚本中的其他逻辑依然可以处理数据。之前一直运
阅读全文
摘要:redis cluster是redis提供的集群模式。 1.redis cluster的架构 ①可以有多个master node,每个master node 都可以挂载多个slave node。 ②读写分离的架构,对应每个master node来说,写就写到master node,读就从master
阅读全文
摘要:1.什么是并发竞争 就是多客户端同时并发写一个key,可能本来应该先到的数据后到了,导致数据版本错了。或者是多客户端同时获取一个key,修改值之后再写回去,只要顺序错了,数据就错了。 2.怎么解决 采用分布式锁+数据修改的时间戳 方案来解决。 ①想要向缓存中写入数据时,必须要获得分布式锁,只有获得锁
阅读全文
摘要:1.Cache aside pattern 这是最经典的 缓存+数据库 读写模式,操作如下: ①读的时候,先读缓存,缓存没有就读数据库,然后将取出的数据放到缓存,同时返回请求响应。 ②更新的时候,先删除缓存,然后更新数据库。 2.为什么是删除缓存,而不是更新缓存呢? ①因为很多时候,缓存中放的并不是
阅读全文
摘要:1.缓存雪崩 (1)什么是缓存雪崩 缓存雪崩指的是在同一时刻,缓存大量失效,导致大量的请求直接到了数据库,数据库压力剧增,引起系统崩溃。可能出现的情况有: ①大量的key设置了相同的过期时间,导致在缓存在同一时刻全部失效,造成瞬时DB请求量大、压力骤增,引起雪崩。 ②缓存系统出现故障,造成缓存系统无
阅读全文
摘要:1.redis持久化的意义 redis持久化的意义,在于 故障恢复 。 如果没有对数据进行持久化,那么如果redis遇到灾难性的故障,就会丢失所有的数据。 如果通过redis的持久化机制将数据持久化到硬盘上面去,然后在定期将磁盘上的文件备份到一起其他的服务器上面(比如:云服务器),这样就可以保证即使
阅读全文
摘要:如果你用redis缓存技术的话,肯定要考虑如何用redis来加多台机器,保证redis是高并发的,还有就是如何让Redis保证自己不是挂掉以后就直接死掉了,redis高可用 redis高并发:主从架构,一主多从,一般来说,很多项目其实就足够了,单主用来写入数据,单机几万QPS,多从用来查询数据,多个
阅读全文
摘要:1.数据为什么会过期? 首先,要明白redis是用来做数据缓存的,不是用来做数据存储的(当然也可以当数据库用),所以数据时候过期的,过期的数据就不见了,过期主要有两种情况, ①在设置缓存数据时制定了过期时间,这样到了过期时间数据就不见了。 ②redis的数据是存放在内存中的,而内存是有限的,是不可能
阅读全文
摘要:1.string 这是最基本的类型了,就是普通的set和get,做简单的kv缓存。 2.hash 这个是类似map的一种结构,这个一般就是可以将结构化的数据,比如一个对象(前提是这个对象没嵌套其他的对象)给缓存在redis里,然后每次读写缓存的时候,可以就操作hash里的某个字段。 hash类的数据
阅读全文
摘要:1.memcached和redis有什么区别? (1)Redis支持服务器端的数据操作 redis和memcached相比,redis拥有更多的 数据结构并且支持更丰富的数据操作 ,通常在memcached里面,你需要将数据拿到客户端来进行类型的修改然后在set回去,这样就严重增加了网络IO的次数和
阅读全文
摘要:1.redis是用来干嘛的? Redis is an open source (BSD licensed), in memory data structure store, used as a database, cache and message broker. It supports data
阅读全文
摘要:一、hash类型 hash是一个string类型的field和value的映射表。添加,删除操作都是O(1)(平均)。 hash特别适合用于存储对象。相对于将对象的每个字段存成单个string类型。将一个对象存储在hash类型中会占用更少的内存,并且可
阅读全文
摘要:1. construct函数 : 用来创建一个redis客户端。 redis = new Redis(); 2. connect函数 :连接到一个redis实例。 参数如下: host:字符串类型 可以使一个HOST IP或者是一个UNIX DOMAIN SOCKET的路径.
阅读全文
摘要:一、sorted set类型 sorted set是有序集合,它在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,会自动重新按新的值调整顺序。可以理解了有两列的 mysql表,一列存value,一列存顺序。操作中key理解为sorted set的名字。 二、Sor
阅读全文
摘要:一、 set类型 set是无序集合,最大可以包含(2 的 32 次方 1)个元素。 set 的是通过 hash table 实现的,所以添加,删除,查找的复杂度都是 O(1)。 hash table 会随着添加或者删除自动的调整大小。需要注意的是调整 hash table 大小时候需要同步(获取写锁
阅读全文
摘要:一、list类型 list是一个链表结构,可以理解为一个每个子元素都是 string 类型的双向链表。 主要功能是push、pop、获取一个范围的所有值等。 操作中key理解为链表的名字。 二、List类型数据操作指令简介 1. lpush key string 在key对应list的
阅读全文
摘要: 下面讲解value,value包括String、List、Set、Sorted Set、Hash 一、String类型 1、string类型 String是最基本的类型,而且Stirng类型是二进制安全的。意思是redis的string可以包含任何数据。比如jp
阅读全文
摘要: redis是一个key value形式的数据缓存,因此包括key和value。 一、key的说明 1、redis的key Redis的key是字符串类型,但是key中不能包括边界字符,由于key不是binary safe的字符串,所以key不能空格和换
阅读全文
摘要:一、redis简介 (一)什么是redis 1.redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key Value 内存数据库。 2.特点:读写性能强悍 支持丰富的数据结构 可持久化存储 一个把数据存储在内存中的高速缓存 3.作者是antirez from I
阅读全文