![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后端
傲娇的狗
这个作者很懒,什么都没留下…
展开
-
Redis集群模式之cluster
背景使用Redis Sentinel 模式架构的缓存体系,在使用的过程中,随着业务的增加不可避免的要对Redis进行扩容,熟知的扩容方式有两种,一种是垂直扩容,一种是水平扩容。垂直扩容表示通过加内存方式来增加整个缓存体系的容量比如将缓存大小由2G调整到4G,这种扩容不需要应用程序支持;水平扩容表示表示通过增加节点的方式来增加整个缓存体系的容量比如本来有1个节点变成2个节点,这种扩容方式需要应用程序支持。垂直扩容看似最便捷的扩容,但是受到机器的限制,一个机器的内存是有限的,所以垂直扩容到一定阶段不可避免的原创 2020-10-06 17:06:56 · 256 阅读 · 0 评论 -
Redis集群模式之sentinel
Redis sentinel概念Redis sentinel(哨兵模式)是官方推荐的高可用(HA)方案,当redis使用master-slave主从复制做高可用时,如果此时主节点master挂了,没有进行主从切换时,会导致服务不可写(假设master节点用来写操作,slave节点用来读操作)。sentinel可以集群部署,而sentinel可以监控多个master-slave集群,发现master节点宕机之后,可以进行主备切换,其作用如下:集群监控:负责监控 redis master .原创 2020-10-06 15:36:50 · 513 阅读 · 0 评论 -
Redis线程模型工作流程和原理
Redis是单线程的,为什么还这么快,很大的原因就是redis采用的是IO多路复用程序,让我们一起来看下Redis的线程模型。概念Redis基于Reactor模式开发了网络事件处理器,这个处理器被称为:文件事件处理器。先看几个关键词:嵌套字,I/O多路复用程序,文件事件分派器,文件事件处理器。redis会通过I/O多路复用程序,监听每个嵌套字,并根据套接字当前执行的任务,为套接字关联上对应的事件处理器。当被监听的套接字准备好执行连接应答(accept)、读取(read)、写入(write原创 2020-10-05 23:06:30 · 921 阅读 · 0 评论 -
Redis数据结构-dict
Redis底层是采用哈希加链表实现的,了解Redis内部数据结构,对学习Redis有很大的帮助。先来看几个关键词dictEntry:表示一个key-value节点。dictht:表示一个dict哈希表,里面有一个数组,数组里面的每个元素都是指向dictEntry的指针。dict:表示redis的字典结构,里面有2个哈希表,一个用来存储键值对,一个用来rehash。dictType:保存了一些用于操作特定类型键值对的函数附上源码:dictEntrytypedef struct原创 2020-10-05 17:02:03 · 244 阅读 · 0 评论 -
Redis的寻址过程
Redis的结构redisDb.id:保存数据库的整数表示号码redisDb.dict:保存键值对的数据redisDb.expires:保存键的过期时间redis的字典是采用哈希表加链表作为其底层实现,dict类型使用2个指针,指向哈希表的地址。0号哈希表主要用于存储了数据库的所有键值对数据,1号哈希表是程序对0号哈希表的rehash时用到,rehash一般是在新增键值对的时候触发,综上可以看出,redis根据key值查找value值时,其实就是在dict里面的0号哈希表(.原创 2020-10-01 19:51:33 · 511 阅读 · 0 评论 -
JPA查询——setResultTransformer过期替换
JPA的setResultTransformer方法过期替换Query query = getEntityManager().createNativeQuery(sql);query.unwrap(org.hibernate.SQLQuery.class) .setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);替换成:...原创 2019-03-12 09:39:46 · 9045 阅读 · 4 评论 -
JPA自定义sql语句查询,结果集中的对象为Object或Map
JPA自定义拼装sql语句(左外连接)查询,将查询结果集保存至List<Object>或者List<Map>中①查询的结果集保存为List<Object>:Query query = getEntityManager().createNativeQuery(sql);List rows = query.getResultList(); ...原创 2019-03-12 09:51:38 · 1857 阅读 · 0 评论