摘要:
redis缓存穿透、击穿和雪崩 Redis缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面 但同时,它也带来了一些问题 其中,最要害的问题,就是数据的一致性问题,从严格意义上讲,这个问题无解;如果对数据的一致性要求很高,那么就不能使用缓存 另外的一些典型问题就是,缓存穿透、缓存雪崩和 阅读全文
摘要:
redis哨兵模式 自动选举老大的模式 主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。Redis从2.8开始正式提供了Sentinel (哨兵)架构来解决这 阅读全文
摘要:
redis主从复制 主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器;前者称为主节点(master/leader),后者称为从节点(slave/follower),数据的复制是单向的,只能由主节点到从节点;Master以写为主,Slave以读为主 默认情况下,每台Redis服 阅读全文
摘要:
redis发布订阅 redis通过PUBLISH、SUBSCRIBE、PSUBSCRIBE等命令实现发布和订阅功能 订阅端 127.0.0.1:6379> SUBSCRIBE yl01 # 订阅yl01频道 Reading messages... (press Ctrl-C to quit) 1) 阅读全文
摘要:
redis实现乐观锁 悲观锁(Pessimistic Lock):顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁;传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先 阅读全文
摘要:
redis事务的基本操作 Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行;事务在执行的过程中,不会被其他客户端发送来的命令请求所打断 Redis事务的主要作用就是串联多个命令防止别的命令插队,没有隔离级别概念;Redis单条命令是有原子性的,但是事务不保证原子性 red 阅读全文
摘要:
springboot整合redis springboot2.x之后原来底层操作redis使用的jedis被替换成了lettuce jedis:采用直连,多个线程同时操作是不安全的,如果想要避免不安全,就要使用jedis pool连接池,但是比较麻烦,类似BIO模式 lettuce:采用netty,实 阅读全文
摘要:
redis持久化机制 redis是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据也会丢失,所以redis提供了持久化功能:rdb、aof RDB(Redis DataBase) 在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快 阅读全文
摘要:
jedis的简单使用 jedis是redis官方推荐的java连接开发工具,是使用Java操作redis的中间件。 导包 <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> <groupId>red 阅读全文
摘要:
redis中Bitmaps位图应用场景 redis中bitmaps可以用来统计用户信息,eg:活跃天数、打卡天数、登录天数 bitmaps位图,都是操作二进制来进行记录,就只有0和1两个状态 eg:统计一周的打卡次数,0:未打卡,1:打卡 127.0.0.1:6379> setbit sign 1 阅读全文
摘要:
redis中hyperloglog基数统计 在工作当中,我们经常会遇到与统计相关的功能需求,比如统计网站PV(PageView页面访问量),可以使用Redis的incr、incrby轻松实现;但像UV(UniqueVisitor,独立访客)、独立IP数、搜索记录数等需要去重和计数的问题如何解决?这种 阅读全文
摘要:
redis中Zset有序集合类型常用命令 Redis有序集合zset与普通集合set非常相似,是一个没有重复元素的字符串集合 不同之处是有序集合的每个成员都关联了一个评分(score),这个评分(score)被用来按照从最低分到最高分的方式排序集合中的成员,集合的成员是唯一的,但是评分可以重复 因为 阅读全文
摘要:
redis中set集合类型常用命令 Redis set对外提供的功能与list类似是一个列表的功能,特殊之处在于set是可以自动去重的,当你需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择,并且set提供了判断某个成员是否在一个set集合内的重要接口,这个也是list所不能提供的 阅读全文
摘要:
redis中hash哈希类型常用命令 Redis hash 是一个键值对集合,是一个string类型的field和value的映射表,类似Java里面的Map<String,Object>,特别适合用于存储对象 下面介绍一些Hash类型的常用命令 新增键值对:hset key field1 valu 阅读全文
摘要:
redis中list列表类型常用命令 单键多值 Redis 列表是简单的字符串列表,按照插入顺序排序,你可以添加一个元素到列表的头部(左边)或者尾部(右边) 它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会较差 下面介绍一些List类型的常用命令 从指定key对应L 阅读全文