首页
学习
活动
专区
圈层
工具
发布

Redis 非关系型数据库学习(三)---- Redis 基础知识

[partten] (3)清除数据库的 key flushdb 清除当前db的key flushall 清除所有db的key (4)Redis默认端口号6379的由来 Redis 非关系型数据库学习(...三)---- Redis 基础知识   在之前的学习中,我们已经在Linux系统上安装了Redis,之后的所有操作都在Linux 系统上完成操作 (1)Redis 数据库 select 切换当前数据库...* 1) "names" 2) "name" (3)清除数据库的 key flushdb 清除当前db的key 这条指令用来清除当前数据库中 所有的key信息 127.0.0.1:6379> keys...) flushall 清除所有db的key 这条命令用来清除所有数据库中的 key 信息 127.0.0.1:6379> flushdb # 清除所有数据库中所有key OK (4)Redis默认端口号...到了给 Redis 选择一个数字作为默认端口号时,Antirez 没有多想,把 “MERZ” 在手机键盘上对应的数字 6379 拿来用了。

55010

Redis:06---数据库管理

一、服务器中的数据库 Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构的db数组中,db数组的每个项都是一个redis.h/redisDb结构,每个redisDb...Redis3.0中已经逐渐弱化这个功能,例如Redis的分布式实现Redis Cluster只允许使用0号数据库,只不过为了向下兼容老版本的数据库功能, 该功能没有完全废弃掉,下面分析一下为什么要废弃掉这个...这样既保证了业务之间不会受到影响,又合理地使用了CPU资源 三、清除数据库(flushdb、flushall) flushdb/flushall命令用于清除数据库,两者的区别的是:flushdb只清除当前数据库...,flushall会清除所有数据库(老板最怕的就是删库跑路的员工了,所以最怕的技术是只会rm -rf的和删库的) 这两个命令使用需要谨慎 flushdb/flushall命令会将所有数据清除,一旦误操作后果不堪设想...我们在1号数据库中使用flushall命令,此时会清除所有数据库中的键

62820
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Redis数据库详解

    并且在Redis中不同数据库与数据库之间,数据是不同步,也就是没有任何关系,也就是如上图所示。下面我们用更形象的图来表示Redis不同数据库之间的存储。如下图所示: ?...那么Redis也是一样的。除此之外,在Redis以后在做分布式时,只允许使用0号数据库,也就是说越高版本的Redis已经越来越弱化这个功能了。只是为了兼容而没有将多数据库的功能去掉而已。...它们的区别就是前者是清空当前数据库的中的数据,而后者是清除所有数据库中的数据。下面我们看具体的事例。 ?...下面我们看一下flushdb/flushall的注意事项: flushdb/flushall命令会一下清除Redis中当前数据库或者所有数据库的内容,如果我们操作失误,很容易造成安全事故。...如果当前Redis中的数据量比较多时,flushdb/flushall命令可能会造成阻塞,所以要慎用。

    1.2K30

    Redis进阶-Redis的惰性删除

    Pre Redis进阶-Redis对于过期键的三种清除策略 我们一直说 Redis 是单线程的,这里的我们默认指的都是Redis主要的工作线程,面向开发的。...没有明显延迟。.../FLUSHALL --> FLUSHDB ASYNC/FLUSHALL ASYNC Redis 提供了 flushdb 和 flushall 指令,用来清空数据库,当数据量很大时,容易阻塞Redis。...-- 异步队列 主线程将对象的引用从「大树」中摘除后,会将这个 key 的内存回收操作包装成一个任务,塞进异步任务队列,后台线程会从这个异步队列中取任务。...不是所有的 unlink 操作都会延后处理,如果对应 key 所占用的内存很小,延后处理就没有必要了,这时候 Redis 会将对应的 key 内存立即回收,跟 del 指令一样。

    1.5K30

    从源码分析 Redis 异步删除各个参数的具体作用

    lazyfree-lazy-user-flush 在 Redis 中,如果要清除整个数据库的数据,可使用FLUSHALL(清除所有数据库的数据)或 FLUSHDB(清除当前数据库的数据)。...在 Redis 4.0 之前,这两个命令都是在主线程中执行的。如果要清除的 KEY 比较多,同样会导致主线程被阻塞。...FLUSHALL ASYNC FLUSHDB ASYNC 在 Redis 6.2.0 中,FLUSHALL和FLUSHDB命令又新增了一个 SYNC 修饰符,它的效果与之前的FLUSHALL和FLUSHDB...这实际上与 Redis 6.2.0 中引入的 lazyfree-lazy-user-flush 参数有关。该参数控制了没有加修饰符的FLUSHALL和FLUSHDB命令的行为。...主从复制中,从节点在加载主节点的 RDB 文件之前,首先会清除自身的数据,slave-lazy-flush 决定了数据清除的方式。

    51010

    Redis线上救命丸:01---误操作AOF、RDB恢复数据

    Redis的flushall/flushdb命令可以做数据清除,对于Redis的开发和运维人员有一定帮助,然而一旦误操作,它的破坏性也是很明显的。怎么才能快速恢复数据,让损失达到最小呢?...本文我们将结合之前学习的Redis相关知识进行分析,最后给出一个合理的方案 注意:为了方便说明,下文中除了AOF文件中的flushall/flushdb以外,其他所有的flushall/flushdb都用...如下所示: appendonly no:对AOF持久化没有任何影响,因为根本就不存在AOF文 件 appendonly yes:只不过是在AOF文件中追加了一条记录,例如下面就是AOF文件中的flush...操作记录: *1$8flushall 虽然Redis中的数据被清除掉了,但是AOF文件还保存着flush操作之前完整的数据,这对恢复数据是很有帮助的。...1)如果发生了AOF重写,Redis遍历所有数据库重新生成AOF文件,并会覆盖之前的AOF文件。

    1.4K20

    Java中的JVM和Redis,你够了解吗?

    现在进入行业的人多了,这个筛选难度也相应的增大了,现在面试都开始问“你有没有做过 JVM调优?” 大家都知道,一般一家公司程序员的人数比较多,就算有JVM方面的问题,参与调优的人数也是有限的。...而且很多同学的公司,根本没有JVM调优场景!就算有,你也没有机会参与解决,而现在的面试情况就是,你不会,很可能就被“误杀”。 ? 当然,JVM只是个举例,比如Redis、分布式锁、高并发场景等!...例如高并发场景,很多同学公司根本没有这个场景,而且就算有,也是核心人员才参与解决。 也正是这样,就导致了,优秀的人得到的机会就越来越多。...人生虽然是一段很长的路,但是很多时候,某一段你落后了,可能以后都很难追上了。 ? 但是就算目前没有实战的场景或者没有实战的机会,也还来得及。...首先具备基本的理论都是必要的,万一哪天有个机会,却因为不懂这个技术点而错过,那就可惜了! 当然,学习需要的也不是一腔热血,而是需要的是长期的规划与高效的掌握技巧!

    53910

    Redis(三):Redis基础知识与常用命令

    1、基础命令 Redis默认有16个数据库,用的是第0个数据库,可以使用select进行切换数据库,使用DBSIZE查看DB大小(只针对当前数据库)。...使用keys * 查看当前数据库下所有的key,使用flushdb清除当前数据库,flushall清除全部数据库内容。...Redis是单线程的,Redis是基于内存操作,CPU不是Redis的性能瓶颈,Redis的瓶颈是机器的内存和网络带宽。(对于内存系统来说,如果没有上下文切换效率就是最高的!)...2、Redis-Key相关命令 Exists key:判断key是否存在 move key 1:移除当前key ExPIRE name 20 :设置key的过期时间,单位是秒 type key:查看可以的数据类型...更多命令可以参照Redis官网:http://www.redis.cn/commands.html

    27730

    七天玩转Redis | Day1、Redis认识与环境配置

    课前答疑:很多小伙伴问我零基础或者根本没有使用过Redis,可以学习嘛?当然是可以的!...我们上面提到了Redis中是有16个数据库的,那么如果想要删除其中一个数据库中的数据,或者删除所有数据库的数据,应该怎么做呢?...首先是删除一个数据库中的全部数据, 我们可以使用SELECT命令切换到这个数据库,然后在该数据库下使用FLUSHDB命令即可 清除一个数据库中的全部数据 FLUSHDB 这个时候你再去get我们之前输入的值就会返回...127.0.0.1:6379> FLUSHDB OK 127.0.0.1:6379> get mykey (nil) 清除所有数据库的全部数据 清除所有数据库的全部数据所使用的命令是FLUSHALL,从命令的英语翻译上我们就可以看到它是清除全部的意思...,使用这个命令后,它会把Redis的16个数据库中的所有数据全部清空,所以在公司或者开发的时候一定要慎用哈!

    31320

    一文涵盖所有工作中遇到的redis操作,让你从此学会redis

    一文涵盖所有工作中遇到的redis操作,让你从此学会redis本文会从基础篇到进阶篇,逐步来讲解redis和springboot的整合,如何去操作,以及他的作用。...,让你像在使用本地的集合一样操作 Redis(分布式 Redis 数据网格)JetCache 对比如果你用的是 Spring,并且没有过多的定制化要求,可以用 Spring Data Redis,最方便如果你用的不是...SPring,并且追求简单,并且没有过高的性能要求,可以用 Jedis + Jedis Pool如果你的项目不是 Spring,并且追求高性能、高定制化,可以用 Lettuce,支持异步、连接池如果你的项目是分布式的...redis进阶操作 @RedisHash注解用于将Java对象映射到Redis的Hash数据结构中,使得对象的存储和检索变得更加简单首先我们创建和实体类一样的数据库表这个是集体类​@Data@RedisHashpublic...中的增删改查操作​public interface UserRedisMapper extends CrudRepository {}之后进行一个测试// 测试 Redis

    61010

    redis中如何切换db

    那么,redis有没有什么方法使不同的应用程序数据彼此分开同时又存储在相同的实例上呢?就相当于MySQL数据库,不同的应用程序数据存储在不同的数据库下。...redis配置文件中下面的参数来控制数据库总数: /etc/redis/redis.conf 文件中,有个配置项 databases = 16 //默认有16个数据库 可以通过下面的命令来切换到不同的数据库下...随后,所有的命令将使用数据库3,知道你明确的切换到另一个数据库下。...每个数据库都有属于自己的空间,不必担心之间的key冲突。 不同的数据库下,相同的key取到各自的值。 flushdb命令清除数据,只会清除当前的数据库下的数据,不会影响到其他数据库。...修改redis.conf下的databases指令: redis没有提供任何方法来关联标识不同的数据库。因此,需要你来跟踪什么数据存储到哪个数据库下。

    1.7K20

    019.Redis键管理命令

    而keys命令会遍历所有键,所以它的时间复杂度是O(n),当Redis保存了大量键时,应该谨慎使用。...渐进式遍历可以有效的解决keys命令可能产生的阻塞问题,但是scan并非完美无瑕,如果在scan的过程中如果有键的变化(增加、删除、修改),那么遍历效果可能会碰到如下问题:新增的键可能没有遍历到,遍历出了重复的键等情况...清空数据库 flushdb # 清空当前数据库的数据 flushall # 清空所有数据库的数据 127.0.0.1:6379[1]> set name tom OK 127.0.0.1:6379[1...3]> select 2 OK 127.0.0.1:6379[2]> get name "tony" # 使用flushdb清空数据,则其他数据库的数据也被清除了 127.0.0.1:6379[2]>.../flushall命令可以非常方便的清理数据,但是也带来两个问题: 这两个命令会将所有数据清除,一旦误操作后果不堪设想 如果当前数据库键值数量比较多,使用这两个命令会存在阻塞Redis的可能性

    46520

    Redis中的Redlock锁真的能解决单机问题吗

    当然1中的描述从理论上来说是完全没有问题的,但是我们考虑一下,如果master节点在同步数据的过程中挂了。slave升级为master节点,升级为master节点的slave节点此时是没有锁数据的。...其他的thread肯定会进行加锁操作。试想一下,此时整个系统只会存在一把锁吗?...让我们假设客户端从大多数Redis实例取到了锁。所有的实例都包含同样的key,并且key的有效时间也一样。然而,key肯定是在不同的时间被设置上的,所以key的失效时间也不是精确的相同。...所有其他的key的存活时间,都会比这个key时间晚,所以可以肯定,所有key的失效时间至少是MIN_VALIDITY。...这种情况发生在当客户端刚取到一个锁还没有来得及释放锁就被网络隔离。如果网络一直没有恢复,这个算法会导致系统不可用。

    83810

    Redis 数据库操作、配置以及慢查询

    Redis 默认配置中是有16个数据库: # 这里是 Redis 配置文件中的配置项 databases 16 #以下是在客户端中进行测试 # 此处可以修改,如果没有修改使用 超过 15 索引的数据库会报错...中已经逐渐弱化这个功能,例如 Redis 的分布式实现 Redis Cluster 只允许使用0号数据库,只不过为了向下兼容老版本的数据库功能,该功能没有完全废弃掉,下面分析一下为什么要废弃掉这个“优秀...语法:FLUSHDB [ASYNC] 说明: 清空当前数据库中的所有 key。 此命令不会失败。 Redis 4.0 版本提供了ASYNC 可选项,用于将该操作另启一个线程,可以起到异步释放的效果。...key 数量 (integer) 0 FLUSHDB/FLUSHALL 命令可以非常方便的清理数据,但是也带来两个问题: FLUSHDB/FLUSHALL 命令会将所有数据清除,一旦误操作后果不堪设想...在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。

    1K20

    Linux 安装Redis

    安装Redis 直接安装 yum install -y redis 没有源 下载并安装 yum install -y epel-release yum install -y redis 开启服务 开启方式一...on 查看运行状态 ps -ef | grep redis 赋值取值 进入redis服务 redis-cli 赋值取值 set psvmc 123456 get psvmc 允许远程连接 yum方式安装的...redis配置文件通常在/etc/redis.conf中,打开配置文件找到 vi /etc/redis.conf 注释bind 127.0.0.1 就可以远程访问 如下 bind 127.0.0.1 改为...设置连接密码 yum方式安装的redis配置文件通常在/etc/redis.conf中,打开配置文件找到 vim /etc/redis.conf 找到 #requirepass foobared 去掉行前的注释...-a myRedis 清空Redis 清除当前数据库缓存 select 0 dbsize flushdb 清除整个redis所有缓存 flushall 防火墙设置 开放端口6379、6380的防火墙

    3.1K20

    redis查询 第1个数据库,而不是默认的第0个数据库

    redis查询 第1个数据库,而不是默认的第0个数据库  spring.redis.database = 1 默认: spring.redis.database = 0 car-test:0>get...有没有什么方法使不同的应用程序数据彼此分开同时又存储在相同的实例上呢?...redis配置文件中下面的参数来控制数据库总数: /etc/redis/redis.conf 文件中,有个配置项 databases = 16 //默认有16个数据库 数据库的数量是可以配置的,默认情况下是...3.flushdb命令清除数据,只会清除当前的数据库下的数据,不会影响到其他数据库。 flushall命令会清除这个实例的数据。在执行这个命令前要格外小心。...redis没有提供任何方法来关联标识不同的数据库。因此,需要你来跟踪什么数据存储到哪个数据库下。

    47510

    Redis-安装使用

    去官网下载redis的压缩包,这里使用的是Redis Stack 7.4,Redis Stack 是 Redis 的增强版本,集成了多个高级功能模块(如全文搜索、JSON 存储、图数据库、时间序列等),...127.0.0.1 -p 6379 shutdown清空redis缓存数据# 连接到指定的Redis实例redis-cli -h 127.0.0.1 -p 6379# 清除当前数据库FLUSHDB#...或者清除所有数据库FLUSHALL#查看keykeys *#删除key 退出redis连接进行操作redis-cli KEYS "wp_post:termids*" | xargs redis-cli...daemonize yes#保护模式,没有密码禁止外部访问protected-mode yes#绑定地址bind 127.0.0.1#配置密码保护requirepass 你的密码#调整内存限制maxmemory...从mysql数据库中获取到redis的连接配置,进行redis服务注册,使用AddScoped注册服务,可支持多租户,参考代码如下://注册redis服务services.AddScoped<IConnectionMultiplexer

    35000

    Redis 数据库管理(学习笔记四)

    redis默认有16个数据库 select 15 选择第15个数据库 flushdb 清除数据库 慢查询日志: slowlog-log-slower-than =0表示所有的都记录,单位是微秒 slowlog-log-slower-than...所有的都不记录 slowlog-max-len 慢查询保存几条 修改配置有两种方法: 1、修改配置文件 2、config set slowlog-log-slower-than 20000         ...config rewrite 获取慢查询日志: slowlog get  slowlog len slowlog reset 重置 redis-cli -r 3 ping 执行三次 redis-cli...-r 3 -i 1 ping 执行三次,每次隔1秒 echo "xxx"|redis-cli -x set hello --bigkeys 找出内存占用比较大的键值 检测客户端到服务器延迟: redis-cli...-h xx --latency redis-cli -h xx --latency-history 获取统计信息: redis-cli --stat 性能测试: redis-benchmark -c100

    27510
    领券