一台服务器上都快开启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. 【JavaScript】快速入门

    摘抄地址快速入门 No1: JavaScript严格区分大小写 No2: JavaScript不区分整数和浮点数,统一用Number表示 NaN表示Not a Number,当无法计算结果时用NaN表 ...

  2. Xamarin Essentials应用教程文件系统FileSystem

    Xamarin Essentials应用教程文件系统FileSystem 文件系统用于管理设备内的各类文件.通过文件系统,应用程序可以创建永久文件和临时文件,也可以获取预先打包的文件,如预设数据库文件 ...

  3. jquery中,使用append增加新元素时,新增元素的绑定监听事件失效的解决办法

    $("outerSelector").on("eventType","innerSelector",function(){}); 举例:如果 ...

  4. AC自动机相关Fail树和Trie图相关基础知识

    装载自55242字符串AC自动机专栏 fail树 定义 把所有fail指针逆向,这样就得到了一棵树 (因为每个节点的出度都为1,所以逆向后每个节点入度为1,所以得到的是一棵树) 还账- 有了这个东西, ...

  5. python网络编程(十一)

    epoll版-TCP服务器 1. epoll的优点: 没有最大并发连接的限制,能打开的FD(指的是文件描述符,通俗的理解就是套接字对应的数字编号)的上限远大于1024 效率提升,不是轮询的方式,不会随 ...

  6. shell脚本使用技巧3--调试

    1.使用-x,开启shell脚本的跟踪调试功能 ex:bash -x script.sh or sh -x script.sh 2.使用set -x 和 set +x对脚本进行部分调试(输入中间的内容 ...

  7. RFC-RTSP

    Network Working Group H. Schulzrinne Request for Comments: 2326 Columbia U. Category: Standards Trac ...

  8. JDK提供的几种线程池比较

    JDK提供的几种线程池 newFixedThreadPool创建一个指定工作线程数量的线程池.每当提交一个任务就创建一个工作线程,如果工作线程数量达到线程池初始的最大数,则将提交的任务存入到池队列中. ...

  9. Django深度剖析-二

    WEBserver处理过程 先写个大家熟悉的socketserver例子 #! /usr/bin/env python # encoding: utf-8 """ @Au ...

  10. mvc中AntiForgeryToken的实现方式--看Mvc源码

    通过 AntiForgeryWorker的GetHtml()方法生成html --input hide元素--value=要验证的值,并生成cookie--用于保存需要验证的值. 类中的AntiFor ...