【redis】数据库管理

1.切换数据库 

redis提供了几个面向redis数据库的操作,他们分别是dbsize,select ,flushdb,
flushall; 

--切换数据库 
redis是用数字作为多个数据库的实现。redis的默认配置中是16个数据库。
databases 16 

select 0:表示切换到第一个数据库。
select 15:表示切换到第16个数据库。

我们默认连接进来是0号数据库。
--通过-n连接到1号数据库。
[root@oracle1 ~]# redis-cli -h 192.168.1.7 -p 6380 -n 1
192.168.1.7:6380[1]> 

为什么要废弃掉redis的多数据库功能呢。
redis是单线程的。如果使用多个数据库,那么这些数据库仍然是使用一个CPU,
彼此直接还是会收到影响。
多个数据库的使用方式,会让调试和运维不同业务的数据库变得困难,假如有一个
慢查询存在,依然会影响其他数据库,定位问题较为困难。
部分redis客户端不支持多数据库方式。再一个来回切换,容易混淆。

不建议使用多数据库功能。而是建议在同一台机器部署多个实例。
每个实例使用不同的CPU;

2.清除数据库 

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

--flushdb 仅删除当前数据库的键。
192.168.1.7:6380[1]> select 1 
OK
192.168.1.7:6380[1]> keys *
1) "b"
192.168.1.7:6380[1]> select 0
OK
192.168.1.7:6380> keys *
1) "python"
2) "java"
3) "user:ranking:20240619"
4) "hashkey1"
192.168.1.7:6380> flushdb
OK
192.168.1.7:6380> keys * 
(empty list or set)
192.168.1.7:6380> select 1 
OK
192.168.1.7:6380[1]> keys *
1) "b"


--flushall,删除所有数据库里面的键。
192.168.1.7:6380> keys * 
1) "a"
2) "b"
3) "d"
4) "e"
5) "c"
6) "f"
192.168.1.7:6380> select 1 
OK
192.168.1.7:6380[1]> keys *
1) "c"
2) "b"
192.168.1.7:6380[1]> flushall 
OK
192.168.1.7:6380[1]> keys *
(empty list or set)
192.168.1.7:6380[1]> select 0
OK
192.168.1.7:6380> keys * 
(empty list or set)

flushdb,flushall命令可以非常方便的清理数据。
flushdb,flushal命令会将所有的数据清除,一旦误操作后果不堪设想。
如果当前数据库键值数量比较多,flushdb/flushall存在阻塞redis的可能。

3.重点回顾 

(1)redis提供五种数据结构,每种数据结构都有多种内部编码实现。
(2)纯内存存储,IO多路复用技术,单线程架构造就redis高性能的三个因素。
(3)由于redis的单线程架构,所以需要每个命令都能被快速执行完成,
否则会存在阻塞redis的可能,理解redis单线程命令处理机制是开发和运维
redis的核心之一。
(4)批量操作(mget,mset,hmset)能够有效提供命令执行效率,但是要注意
每次批量操作的个数和字节数。
(5)了解每个命令的时间复杂读在开发中至关重要,例如在使用keys,hgetal,
smembers,zrange等时间复杂度较高的命令时,需要考虑规模对于redis的影响。
(6)persist:命令可以删除任意类型键的过期时间,但是set命令会删除字符串类型
的键的过期时间。 
(7)move,dump+restore,migrate是redis发展过程中三种迁移键的方式,
其中move命令基本废弃,migrate命令用原子的方式实现了dump+restore,并且
支持批量操作,是rediscluster实现水平扩容的重要工具。
(8)scan命令可以解决keys命令可能带来的阻塞问题,同时redis还提供了hscan,
sscan,zscan渐进式遍历hash,set,zset;

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值