当前位置:首页 > 技术文章 > 正文内容

Redis缓存:redis 数据库管理_redis缓存实现思路

douba32周前 (08-21)技术文章9

Redis提供了几个面向Redis数据库的操作,它们分别是dbsize、select、flushdb/flushall命令

1、数据库切换

select dbIndex

关系型数据库,例如MySQL支持在一个实例下有多个数据库存在的,但是与关系型数据库用字符来区分不同数据库名不同,Redis只是用数字作为多个数据库的实现。Redis默认配置中是有16个数据库;

redis.conf配置文件


select0操作将切换到第一个数据库,select15选择最后一个数据库,但是0号数据库和15号数据库之间的数据没有任何关联,甚至可以存在相同的键;

当使用redis-cli-h{ip}-p{port}连接Redis时,默认使用的就是0号数据库,当选择其他数据

库时,会有[index]的前缀标识,其中index就是数据库的索引下标;


Redis3.0中已经逐渐弱化这个功能,例如Redis的分布式实现RedisCluster只允许使用0号数据库,只不过为了向下兼容老版本的数据库功能,该功能没有完全废弃掉;

忘掉该功能的原因有三点:

1)、Redis是单线程的。如果使用多个数据库,那么这些数据库仍然是使用

一个CPU,彼此之间还是会受到影响的。

2)、多数据库的使用方式,会让调试和运维不同业务的数据库变的困难,

假如有一个慢查询存在,依然会影响其他数据库,这样会使得别的业务方定

位问题非常的困难。

3)、部分Redis的客户端根本就不支持这种方式。即使支持,在开发的时候

来回切换数字形式的数据库,很容易弄乱。

2、flushdb/flushall

flushdb/flushall命令用于清除数据库,两者的区别的是flushdb只清除当前数据库,flushall会清除所有数据库。

flushdb/flushall命令可以非常方便的清理数据,但是也带来两个问题:

  • 1)、flushdb/flushall命令会将所有数据清除,一旦误操作后果不堪设想
  • 2)、如果当前数据库键值数量比较多,flushdb/flushall存在阻塞Redis的可能

性。

3、核心点

1、Redis高性能的三个因素:纯内存存储、IO多路复用技术、单线程架构

2、由于Redis的单线程架构,所以需要每个命令能被快速执行完,否则会存在阻塞Redis的可能,理解Redis单线程命令处理机制是开发和运维Redis的核心之一。

相关文章

linux下查看网络连接、进程、服务

实验环境:ubuntu2020,centos,以下命令适用不限于ubuntu和centos一、查看网络连接netstatnetstat 是一个告诉我们系统中所有 tcp/udp/unix socket...

Linux基础知识之查看io(查看linux的io使用情况)

1.查看占用IO高的磁盘:iostat -X -d -k 1 102.查看占IO的pid:pidstat -d3.查看pid进程:ps -aux | grep pid4.查看占用IO高的pid:iot...

Linux 命令 ncftp(文件传输)——想玩转linux就请一直看下去

我是IT悟道,点击右上方“关注”,每天分享IT、科技、数码方面的干货。Linux ncftp命令Linux 命令大全Linux ncftp命令用于传输文件。FTP让用户得以下载存放于服务器主机的文件,...

Linux 性能更好的ftp客户端 lftp 使用详解

简介LFTP 是一个命令行 FTP 客户端,支持多种文件传输协议,包括 FTP、FTPS、HTTP、HTTPS和SFTP 。它以其通过镜像、后台操作和脚本支持等特性有效管理复杂传输的能力而闻名。安装U...

linux安装FTP(linux安装ftp服务器的步骤)

1、 在nkftp目录下安装ftp,进入到nkftp里面[root@localhost bin]#cd /data/nkftp执行安装命令:[root@localhost nkftp]# rpm -i...

filezilla,非常实用的ftp工具,远程Linux上传、下载和文件管理

今天给小伙伴们推荐一款非常好用的Linux远程工具,filezilla。在实际的开发过程中,时间就是项目的生命线,欲善其事,先利其器!如果你使用命令ftp上传、下载,加上远程登录、文件授权,烦不甚烦,...