NoSQL
倔强的耗子
知道的越多,不知道的越多
展开
-
Redis学习之Redis缓存穿透、击穿和雪崩(面试高频)
Redis缓存穿透和雪崩(面试高频,工作常用)记录的同时也就当做面试准备缓存穿透概念用户想要查询一个数据,发现redis内存数据库没有,也就是缓存没有命中,于是请求持久层数据库,发现也没有。于是本次查询失败,当用户很多的时候,缓存都没有命中,于是都去请求了持久层。这会给持久层数据库造成很大的压力,这时候就相当于出现了缓存穿透解决方案布隆过滤器布隆过滤器是一种数据结构,对所有可能查询的参数以hash形式存储,在控制层先进行校验,不符合则丢弃,从而避免了对底层存储系统的压力缓存空原创 2020-07-11 18:33:28 · 281 阅读 · 0 评论 -
Redsi学习之配置哨兵模式
哨兵模式(自动选举老大的模式)概述主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费时费力,还会造成服务一段时间内不可用,这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。Redis从2.8版本后正式推出sentinel(哨兵)架构来解决这个问题他也是slaveof no one的自动版,能够后天监控主机是否宕机,如果故障了根据投票数自动将从机选为主机然而一个哨兵进程对redis服务器进行监控,可能会出现问题,为此,我们可以使用多个哨兵进行原创 2020-07-11 17:32:58 · 431 阅读 · 0 评论 -
Redis学习之Redis集群配置主从复制(一主二从)
Redis主从复制概念主从复制,是指将一台redis服务器的数据,复制到其他的redis服务器,前者称为主节点(master/leader),后者称为(slave/follower)数据的复制是单向的,只能由主节点到从节点。master以写为主,slave以读为主。默认情况下,每台redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。主从复制的作用主要包括:数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式故障恢复:当主节点出原创 2020-07-11 17:31:05 · 1035 阅读 · 0 评论 -
Redis学习之Redis的持久化方式RDB与AOF
redis的持久化RDB(redis database)在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是我们经常说的快照snapshot,它恢复时是将快照文件直接读到内存里,redis会单独创建fork一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任务io操作的。这就确保了极高的性能,如果需要进行大规模的数据恢复,且数据恢复的完整性要求不是很高,那么使用RDB方式要比AOF方式更加的高效。EDB的缺原创 2020-07-11 11:28:39 · 168 阅读 · 0 评论 -
Redis学习之Redis配置文件详解
Redis配置文件详解redis.conf文件,我们启动redis的时候就是通过这个配置文件单位配置文件unit单位对大小写不敏感包含 include就是启动的时候可以包含其他的配置文件,就好比学习jsp 的include静态包含网络networkbind 127.0.0.1 # 绑定的ip,允许指定的rdis客户端才能连接protected yes # 开启保护模式port 6379 # 端口通用generaldaemonize yes # 默认是no,改为y原创 2020-07-11 10:01:13 · 320 阅读 · 0 评论 -
Redis学习之SpringBoot整合Redis以及配置序列化
SpringBoot整合Redis说明:在SpringBoot2.0之后,原来使用的Jedis被替换为了lettuce?为什么官方推荐的Jedis被替换了呢jedis:采用的是直连的server,多个线程操作的话是不安全的,如果想要避免不安全,使用jedis pool连接池! BIO模式lettuce:采用netty,实例可以在多个线程中共享,不存在线程不安全的情况,减少线程数量! NIO模式SpringBoot回顾SpringBoot所有的配置类,都有一个自动配置类 RedisAu原创 2020-07-10 00:47:51 · 613 阅读 · 0 评论 -
Redis学习之Jedis的使用
Jedis的使用简单地说就是通过java来操作Redis,什么是Jedis,是官方推荐的java连接开发工具!使用java操作Redis中间件!如果你要使用java操作redis,那么一定要对Jedis十分熟悉,当然你也可以使用SpringBoot的无脑的RedisTemplate,但是它的底层还是Jedis,所有还是很有必要熟悉一下底层Jedis1、引入maven依赖 <!-- redis --> <dependency> <groupId>red原创 2020-07-08 22:33:05 · 172 阅读 · 0 评论 -
Redis学习之Redis事务
Redis事务Redis事务本质:一组命令的集合,将一些命令放在队列中。一个事务中所有的命令都会被序列化,在事务执行工程中,会按照顺序执行。一致性顺序性排他性Redis事务没有隔离级别的概念!!!所有的命令在事务中,并没有直接被执行,只有发起执行命令的时候才会执行 ExecRedis单条命令是保持原子性的,但是redis事务不保证原子性!Redis的事务的过程;开启事务(multi)命令入队(。。。)执行事务(exec)正常执行事务127.0.0.1:6379>原创 2020-07-05 19:17:47 · 133 阅读 · 0 评论 -
Redis学习之Redis三种特殊数据类型Geospatial、Hyperloglog、Bitmap
三种特殊数据类型geospatial地理位置朋友的定位,附近的人,打车距离计算??Redis的Geo的Redis3.2版本就有了,这个功能可以推算地理位置信息,两地之间的距离,方圆几里的人可以查询一些测试数据 http://www.jsons.cn/lngcode/geoadd 添加地理位置# geoadd 添加地理位置# 规则:两级无法直接添加,我们一般是下载城市数据,直接通过java程序一次性导入# 参数 key 值 (经度、纬度、名称)# 有效的经度 -180到180#原创 2020-07-05 18:18:07 · 245 阅读 · 0 评论 -
Redis学习之Redis五大基本数据类型
Redis五大数据类型redis五大数据类型 String、list、set、hash、zset的常用api演示Redis-Key(关于key的命令)# set key value 设置值# get key 获取值# keys * 查看所有的key# exist key 判断当前key是否存在# expire key 10 设置过期时间(秒)# ttl key 查看剩余过期时间# del key 删除key # move key 1 (将这个key移动到1号数据库中)# type原创 2020-07-05 16:18:44 · 142 阅读 · 0 评论 -
Redis学习之Redis概述与安装以及性能测试
Redis入门概述Redis是什么Redis(remote dictionary server)远程字典服务器是一个开源的使用c语言编写、支持网络、可基于内存亦可持久化的日志型、key-value的数据库。提供多种语言的API,免费和开源,是当下最热门的Nosql技术之一,也被人们称为结构化数据库Redis能干嘛?1、内存存储、持久化、内存中是断电即失、所以说戳持久化很重要(RDB,AOF)2、效率高,可以用于高速缓存3、发布订阅分析4、地图信息分析5、计时器原创 2020-07-04 19:51:44 · 230 阅读 · 0 评论 -
Redis学习之Nosql概述
Nosql概述为什么要使用Nosql1、单机Mysql的年代!APP -----------------------> DAL -----------------------------> Mysql90年代,一个基本的网站的访问量一般不会太大,单个数据库完全足够!那个时候,更多的去使用静态网页html~服务器根本就没有太大的压力,那这种情况下:整个网站的瓶颈是什么?1、数据量如果太大,一个机器放不下。2、数据库的索引(B+Tree),一个机器内存也放不下3、访原创 2020-07-04 17:00:00 · 249 阅读 · 3 评论