redis如何设置database个数

目录
  • redis设置database个数
  • 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

应用场景

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

场景:

你或许希望一个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命令清除数据,只会清除当前的数据库下的数据,不会影响到其他数据库。flushall命令会清除这个实例的数据,在执行这个命令之前要考虑清楚,我这里只是实验环境,无所谓了。

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

databases 64

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

总结

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

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

(0)

相关推荐

  • 浅谈Redis的几个过期策略

    概述 设置过期时间 expire key time(以秒为单位) 这是最常用的方式 setex(String key, int seconds, String value) 字符串独有的方式 除了字符串自己独有设置过期时间的方法外,其他方法都需要依靠expire方法来设置时间如果没有设置时间,那缓存就是永不过期如果设置了过期时间,之后又想让缓存永不过期,使用persist key 三种过期策略 定时删除 在设置key的过期时间的同时,为该key创建一个定时器,让定时器在key的过期时间来临时,对

  • 详解Spring Data操作Redis数据库

    Redis是一种NOSQL数据库,Key-Value形式对数据进行存储,其中数据可以以内存形式存在,也可以持久化到文件系统.Spring data对Redis进行了很好的封装,用起来也是十分的得心应手.Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, h

  • Redis数据库的安装配置方法

    redis 是一个高性能的key-value数据库. redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用.它提供了Python,Ruby,Erlang,PHP客户端,使用很方便.问题是这个项目还很新,可能还不足够稳定,而且没有在实际的一些大型系统应用的实例.此外,缺乏mc中批量get也是比较大的问题,始终批量获取跟多次获取的网络开销是不一样的. 性能测试结果: SET操作每秒钟 110000 次,GET操作每秒钟 81

  • 超强、超详细Redis数据库入门教程

    [本教程目录] 1.redis是什么 2.redis的作者何许人也 3.谁在使用redis 4.学会安装redis 5.学会启动redis 6.使用redis客户端 7.redis数据结构 – 简介 8.redis数据结构 – strings 9.redis数据结构 – lists 10.redis数据结构 – 集合 11.redis数据结构 – 有序集合 12.redis数据结构 – 哈希 13.聊聊redis持久化 – 两种方式 14.聊聊redis持久化 – RDB 15.聊聊redis持

  • redis如何设置database个数

    目录 redis设置database个数 redis 多数据库 database配置项解析 应用场景 总结 redis设置database个数 今天连公司数据库,发现db达到255个,不知道为什么,其实是256个从0开始的 而我自己的只有16个 我是windows的,linux是一样的,目录结构如图: 编辑redis.conf配置文件,搜索database,可以找到: databases 16 如图: 通过看简单描述,我们大概知道: 最后一句话,意思是,初始的DB是0,(默认的是16),你能自己

  • Python操作Redis之设置key的过期时间实例代码

    Expire 命令用于设置 key 的过期时间.key 过期后将不再可用. r.set('2', '4028b2883d3f5a8b013d57228d760a93') #成功就返回True 失败就返回False,下面的20表示是20秒 print r.expire('2',20) #如果时间没事失效我们能得到键为2的值,否者是None print r.get('2') 对于一个已经存在的key,我们可以设置其过期时间,到了那个时间后,当你再去访问时,key就不存在了 有两种方式可以设置过期时间

  • Redis 密码设置和查看密码的方法

    redis没有实现访问控制这个功能,但是它提供了一个轻量级的认证方式,可以编辑redis.conf配置来启用认证. 1.初始化Redis密码: 在配置文件中有个参数: requirepass  这个就是配置redis访问密码的参数: 比如 requirepass test123: (Ps:需重启Redis才能生效) redis的查询速度是非常快的,外部用户一秒内可以尝试多大150K个密码:所以密码要尽量长(对于DBA 没有必要必须记住密码): 2.不重启Redis设置密码: 在配置文件中配置re

  • python redis 批量设置过期key过程解析

    这篇文章主要介绍了python redis 批量设置过期key过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在使用 Redis.Codis 时,我们经常需要做一些批量操作,通过连接数据库批量对 key 进行操作: 关于未过期: 1.常有大批量的key未设置过期,导致内存一直暴增 2.rd需求 扫描出这些key,rd自己处理过期(一般dba不介入数据的修改) 3.dba 批量设置过期时间,(一般测试可以直接批量设置,线上谨慎操作) 通过

  • java操作Redis缓存设置过期时间的方法

    关于Redis的概念和应用本文就不再详解了,说一下怎么在java应用中设置过期时间. 在应用中我们会需要使用redis设置过期时间,比如单点登录中我们需要随机生成一个token作为key,将用户的信息转为json串作为value保存在redis中,通常做法是: //生成token String token = UUID.randomUUID().toString(); //把用户信息写入redis jedisClient.set(REDIS_USER_SESSION_KEY + ":"

  • Redis有效时间设置以及时间过期处理操作

    本文对redis的过期处理机制做个简单的概述,让大家有个基本的认识. Redis中有个设置时间过期的功能,即对存储在redis数据库中的值可以设置一个过期时间.作为一个缓存数据库,这是非常实用的.如我们一般项目中的token或者一些登录信息,尤其是短信验证码都是有时间限制的,按照传统的数据库处理方式,一般都是自己判断过期,这样无疑会严重影响项目性能. 一.有效时间设置: redis对存储值的过期处理实际上是针对该值的键(key)处理的,即时间的设置也是设置key的有效时间.Expires字典保存

  • Linux下安装Redis并设置相关服务

    一.简介 Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的Web应用程序的完美解决方案. Redis从它的许多竞争继承来的三个主要特点: Redis数据库完全在内存中,使用磁盘仅用于持久性. 相比许多键值数据存储,Redis拥有一套较为丰富的数据类型. Redis可以将数据复制到任意数量的从服务器. Redis 优势  异常快速:Redis的速度非常快,每秒能执行约11万集合,每秒约81000+条记录. 支持丰富的数据类型:Redis支持最大多数开发人员已经知道像列

  • Redis密码设置与访问限制实现方法

    现在用redis缓存热数据越来越常见了,甚至一些配置,开关等等的东西也写到redis里.原因就是redis简单高效.redis里的数据也越来越重要了,例如一些业务的中间数据会暂时存放在redis里,所以限制redis的访问还是很有必要. 本文通过几个手段说一下生产环境中redis的访问权限控制. 1.绑定网卡bind redis的配置文件redis.conf中对于网络安全部分有这样一段话 ################################## NETWORK ###########

  • 使用Redis如何设置永久有效

    目录 如何设置永久有效 Redis设置密码 1. 命令行设置密码 2. 配置文件设置密码 如何设置永久有效 PERSIST key 持久化 key 和 value Redis 在默认情况下会采用 noeviction 回收策略,即不淘汰任何键值对,当内存己满时只能提供读操作,不能提供写操作 Redis设置密码 设置密码有两种方式. 1. 命令行设置密码 运行cmd切换到redis根目录,先启动服务端 >redis-server.exe 另开一个cmd切换到redis根目录,启动客户端 >red

  • redis如何设置key的有效期

    目录 redis设置key的有效期 Key命令 彻底理解redis有效期问题 1.过期时间跟着key走,与值无关 2.设置永久有效期 3.rename命令对有效期影响 4.刷新过期时间 5.过期精度 6.外界因素对过期时间影响 7.Redis如何淘汰过期的keys 8.在复制AOF文件时如何处理过期 redis设置key的有效期 Key命令 设置key的过期时间. 查询当前所有的key expire key second:设置key的过期时间 若执行ttl key 显示为-2 则说明改值不存在缓

随机推荐