redis如何设置database个数

 更新时间:2021年09月02日 14:36:11   作者:你就像甜甜的益达  
这篇文章主要介绍了redis如何设置database个数的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

redis设置database个数

今天连公司数据库,发现db达到255个,不知道为什么,其实是256个从0开始的

在这里插入图片描述

而我自己的只有16个

在这里插入图片描述

我是windows的,linux是一样的,目录结构如图:

在这里插入图片描述

编辑redis.conf配置文件,搜索database,可以找到:

databases 16

如图:

在这里插入图片描述

通过看简单描述,我们大概知道: 最后一句话,意思是,初始的DB是0,(默认的是16),你能自己选择一个数字来作为数据库的大小,但是不能为0,大概就是这样…我们可以通过修改16,来达到你想要的=-=…

注意:启动需要指定的配置文件。可以通过命令行启动,在当前文件夹下启动命令行 redis-server.exe ./redis.conf;

我写了个bat文件: start redis-server.exe redis.conf还是在当前文件就好了…

redis 多数据库 database配置项解析

读到redis配置文件的时候,碰到databases 16我不明白了,然后开启百度和google的搜索介绍之门,下面把我读取文章吸取到的解释介绍如下。

官方的解释:可用数据库数,默认值为16,默认数据库为0。

刚开始咋一看没有明白,可用数据库的个数,redis一个实例不就是一个数据库吗。怎么还可以配置多个数据库。这是因为Redis下,数据库是由一个整数索引标识,而不是由一个数据库名称,可以直白的理解为配置不同的的库,占用的是不同的内存空间,不同的库之间相互不影响,独立工作,只不过都是借宿在这个Redis实例上面生存的空间。

Redis的配置文件中默认的数据库总数为16个,默认它是一个下标基于0到15的数组:

databases 16

database.png

应用场景

为什么Redis会有这么一个设计场景呢,我想这是一个类似多租户的概念。就像虚拟化和容器一样,你可以虚拟出多台机器和多个容器来,充分利用物理机器的硬件配置来work,达到服务器性能最大的利用率,各个虚拟机和容器之间单独运行,互补影响和干扰,我想Redis的多数据库也是同样的道理。

场景:

redisdatabase.png

你或许希望一个Redis应用(一个Redis server,或者一个Redis server/slaves群组)能为多个客户端应用服务,如果这些客户端应用都各自为营,向Redis写数据的话,很可能会导致key冲突(我们知道Redis是一个key-value结构的存储结构)。为了将不同的应用分开,你可以用不同的前缀去区分(eg: app_i:xx:yy, app_ii:xx:yy)。这时候你就不用这么麻烦,就可以直接利用Redis分割这些key的机制:Database的概念。

每个数据库都有属于自己的空间,不必担心之间的key冲突。

不同的数据库下,相同的key取到各自的值。

flushdb.png

flushdb命令清除数据,只会清除当前的数据库下的数据,不会影响到其他数据库。flushall命令会清除这个实例的数据,在执行这个命令之前要考虑清楚,我这里只是实验环境,无所谓了。

数据库的数量是可以配置的,默认情况下是16个。修改redis.conf下的databases指令:

databases 64

redis没有提供任何方法来关联标识不同的数据库。因此,需要你来跟踪什么数据存储到哪个数据库下或者什么业务的数据存在哪个库里面,这个我觉得可以用Zookeeper来解决。

总结

Redis databases,从“客户端应用都各自为营”和业务分离的角度来看,Database的概念是很适用的,它让我们有清晰的数据划分,可以放心的把注意力放在key的设计上。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • NestJS+Redis实现缓存步骤详解

    NestJS+Redis实现缓存步骤详解

    这篇文章主要介绍了NestJS+Redis实现缓存,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • redis+mysql+quartz 一种红包发送功能的实现

    redis+mysql+quartz 一种红包发送功能的实现

    这篇文章主要介绍了redis+mysql+quartz 一种红包发送功能的实现的相关资料,需要的朋友可以参考下
    2017-01-01
  • jwt+redis实现登录认证的示例代码

    jwt+redis实现登录认证的示例代码

    在登录业务代码中,当用户登录成功时,生成一个登录凭证存储到redis中,本文主要介绍了jwt+redis实现登录认证的示例代码,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • 详解Redis中的简单动态字符串和C字符串的区别

    详解Redis中的简单动态字符串和C字符串的区别

    简单动态字符串(SDS)和 C 字符串在实现和特性上存在一些区别,这些区别使得 SDS 更适合作为 Redis 中字符串对象的内部表示,本文给大家介绍一下Redis中的简单动态字符串和C字符串的区别,需要的朋友可以参考下
    2023-12-12
  • redis中lua脚本使用教程

    redis中lua脚本使用教程

    在使用redis的过程中,发现有些时候需要原子性去操作redis命令,而redis的lua脚本正好可以实现这一功能。这篇文章主要介绍了redis中lua脚本的简单使用,需要的朋友可以参考下
    2021-10-10
  • 在redis中防止消息丢失的机制

    在redis中防止消息丢失的机制

    在项目中,由于网络问题,我们很难保证生产者发送的消息能100%到达消息队列服务器,也就是说有消息丢失的可能性,因 此,生产者就必须具有消息丢失检测和重发机制,这篇文章主要介绍了如何在redis中防止消息丢失,需要的朋友可以参考下
    2023-02-02
  • Redis高可用集群redis-cluster详解

    Redis高可用集群redis-cluster详解

    redis cluster 是redis官方提供的分布式解决方案,在3.0版本后推出的,有效地解决了redis分布式的需求,当一个redis节点挂了可以快速的切换到另一个节点,对redis-cluster高可用集群相关知识感兴趣的朋友一起看看吧
    2022-03-03
  • Redis底层数据结构SkipList的实现

    Redis底层数据结构SkipList的实现

    本文主要介绍了Redis底层数据结构SkipList的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • 使用AOP+redis+lua做方法限流的实现

    使用AOP+redis+lua做方法限流的实现

    本文主要介绍了使用AOP+redis+lua做方法限流的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • 浅谈RedisTemplate和StringRedisTemplate的区别

    浅谈RedisTemplate和StringRedisTemplate的区别

    本文主要介绍了RedisTemplate和StringRedisTemplate的区别及个人见解,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06

最新评论