一台服务器上都快开启200个redis实例了,看着就崩溃了。这么做无非就是想让不同类型的数据属于不同的应用程序而彼此分开。

那么,redis有没有什么方法使不同的应用程序数据彼此分开同时又存储在相同的实例上呢?就相当于mysql数据库,不同的应用程序数据存储在不同的数据库下。

redis下,数据库是由一个整数索引标识,而不是由一个数据库名称。默认情况下,一个客户端连接到数据库0。redis配置文件中下面的参数来控制数据库总数:

databases 

可以通过下面的命令来切换到不同的数据库下:

redis> select
OK

随后,所有的命令将使用数据库3,知道你明确的切换到另一个数据库下。每个数据库都有属于自己的空间,不必担心之间的key冲突。

➜  ~ redis-cli -p
127.0.0.1:> set test
OK
127.0.0.1:> keys *
) "test"
127.0.0.1:> get test
""
127.0.0.1:> select //切换到数据库2
OK
127.0.0.1:[]> get test
(nil) //找不到这个值
127.0.0.1:[]> select //切换到数据库2
OK
127.0.0.1:> get test
""

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

 ➜  ~ redis-cli -p                   //登录数据库
127.0.0.1:> select //切换到默认数据库(0)
OK
127.0.0.1:> set test //在数据库 0 设置test的值为"1234"
OK
127.0.0.1:> select //切换到默认数据库(1)
OK
127.0.0.1:[]> set test //在数据库 1 设置test的值为"1234"
OK
127.0.0.1:[]> select //切换到默认数据库(0)
OK
127.0.0.1:> get test //查看数据库 0 的test数据
""
127.0.0.1:> select
OK
127.0.0.1:[]> get test //查看数据库 1 的test数据
""

flushdb命令清除数据,只会清除当前的数据库下的数据,不会影响到其他数据库。

 ➜  ~ redis-cli -p
127.0.0.1:> select //切换到数据库 1
OK
127.0.0.1:[]> keys * //显示当前数据库所有字段
) "test"
127.0.0.1:[]> flushdb //清空当前数据库的字段
OK
127.0.0.1:[]> keys * //显示当前数据库所有字段
(empty list or set) //当前数据库无任何字段
127.0.0.1:[]> select //切换到数据库 0
OK
127.0.0.1:> keys * //显示当前数据库所有字段,当前数据库 0 没有被清除,说明flushdb命令清除数据,只会清除当前的数据库下的数据,不会影响到其他数据库。
) "test"

flushall命令会清除这个实例的数据。在执行这个命令前要格外小心。

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

然后重启redis并指向redis.conf,使redis生效:

sudo redis-server /etc/redis/redis.conf

redis没有提供任何方法来关联标识不同的数据库。因此,需要你来跟踪什么数据存储到哪个数据库下。

因此上面的快开启200个实例的场景,可以使用不同的数据库来存储,而不必开启如此那么多的实例。

Redis 学习之路 (011) - redis 多数据库的更多相关文章

  1. Redis 学习之路 (010) - redis命令手册

    Redis 键(key) 命令 命令 描述 Redis DEL 命令 该命令用于在 key 存在是删除 key. Redis Dump 命令 序列化给定 key ,并返回被序列化的值. Redis E ...

  2. Redis——学习之路四(初识主从配置)

    首先我们配置一台master服务器,两台slave服务器.master服务器配置就是默认配置 端口为6379,添加就一个密码CeshiPassword,然后启动master服务器. 两台slave服务 ...

  3. Redis——学习之路三(初识redis config配置)

    我们先看看config 默认情况下系统是怎么配置的.在命令行中输入 config get *(如图) 默认情况下有61配置信息,每一个命令占两行,第一行为配置名称信息,第二行为配置的具体信息.     ...

  4. Redis——学习之路二(初识redis服务器命令)

    上一章我们已经知道了如果启动redis服务器,现在我们来学习一下,以及如何用客户端连接服务器.接下来我们来学习一下查看操作服务器的命令. 服务器命令: 1.info——当前redis服务器信息   s ...

  5. Redis学习之路(000)- 目录

    本文是博主学习整理网上大神的文件以及自学的心得. Redis学习之路(000)- 目录 Redis学习之路(001)- Redis介绍以及安装(Linux) Redis学习之路(002)- Ubunt ...

  6. redis学习教程一《Redis的安装和配置》

    redis学习教程一<Redis的安装和配置> Redis的优点 以下是Redis的一些优点. 异常快 - Redis非常快,每秒可执行大约110000次的设置(SET)操作,每秒大约可执 ...

  7. C# Redis学习系列三:Redis配置主从

    Redis配置主从 主IP :端口      192.168.0.103 6666 从IP:端口       192.168.0.108 3333 配置从库 (1)安装服务: redis-server ...

  8. redis 学习(1)-- redis 安装与启动

    redis 学习(1)-- redis 安装与启动 redis 特性 关于 redis 的介绍网上已经有很多信息了,这里我就不在详细说明了.介绍一下几个鲜明特性: 1.速度快 官方称可以达到10W的q ...

  9. C# Redis学习系列二:Redis基本设置

    上一篇:C# Redis学习系列一:Redis的认识.下载.安装.使用 一.redis 设置密码 使用下载好的 redis-cli.exe 指令: 1.设置密码: config set require ...

随机推荐

  1. python基础篇_001_初识Python

    一.Python环境 windows环境安装Python步骤 .下载安装包:https://www.python.org/downloads/windows/  .安装:默认安装路径:C:\pytho ...

  2. hdu3038

    hdu3038带权并查集这种问题不仅仅要处理不同的点的是否在同一个集合里之类的问题,点与点之间存在连线,其带有权值,在路径压缩的时候也要对权值进行操作这道题就是带权并查集+向量去做 #include& ...

  3. CSS-样式篇

    2文本: 1文本缩进:text-indent:理论上只有块级元素才可以设置(百分比是相对于父元素的宽度,负值的话要设置内边距进行抵消,防止超过浏览器边界),行内元素可以通过内边距和外边距来达到同样的效 ...

  4. Web Service 消息格式

    当客户端和Web Service服务器进行通信时,他们交换消息.客户端发送请求消息到Web Service服务器. Web Service服务器响应并返回消息.这就像普通的HTTP,浏览器发送一个HT ...

  5. C# GridViewExportUtil

    using System.Data; using System.IO; using System.Web; using System.Web.UI; using System.Web.UI.WebCo ...

  6. Java并发程序设计(二)Java并行程序基础

    Java并行程序基础 一.线程的生命周期 其中blocked和waiting的区别: 作者:赵老师链接:https://www.zhihu.com/question/27654579/answer/1 ...

  7. AVL树的理解及自写AVL树

    AVL树是最先发明的自平衡二叉查找树.在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树.查找.插入和删除在平均和最坏情况下都是O(log n).增加和删除可能需要通过一次或多 ...

  8. .net异常机制

    异常机制简介 当CPU运行到一些非法的指令,例如除零错误,访问内存页失败等指令,CPU会生成一个硬件异常,不同的异常有固定的异常代码作为标识符,异常产生以后CPU暂时不能继续执行后续的指令—因为后续的 ...

  9. vue环境配置 vue-cli脚手架

    vue 环境配置步骤: 第一步: 在官网下载node,Node  下载地址 http://nodejs.cn/ 并安装node.检测node是否安装成功, 按 “windows+r”  进入cmd命令 ...

  10. Python 列表改为嵌套列表再转为矩阵

    最终目的--------->[下面的形式我就可以直接转为矩阵,用mat即可] 下午为了实现list的这个功能,查找了好多库,但是都没有找到怎么做,索性就自己封装了一个函数实现了其功能: def ...