Redis 多数据库
2023-03-20 14:52:18 时间
前言
Redis 是一款非常好用的KV缓存数据库,生产中会大量使用到
为了区分应用,常规的做法是通过增加redis实例,监听在不同端口上以进行区分,这样在体量小的时候问题不大,当体量大了,就会有产生如下问题:
- redis实例多了
- 每个redis实例的潜能并未发挥充分
- 应用与redis之间的对应容易混乱
- 日志与数据文件分散,配置修改麻烦
- slave数量爆增
总体来说,就是明显提升了运维管理成本
那有没有很好的解决办法?
我们之所以需要区别对待,很大一部分原因是希望获得一个干净的名称空间,不被其它应用意外篡改
redis本身具备的多数据库特性就可以很好的满足这类需求,完全不必运行多个实例
(当然,由于redis的单线程特性,如果应用单个操作平均耗时过长,使用实例区分开来还是很有必要的)
这里分享一下redis的多数据特性与简单操作
Tip:当前的最新版本为 redis-3.0.7
概要
环境
[root@h102 redis-3.0.7]# uname -a
Linux h102.temp 2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
[root@h102 redis-3.0.7]# cat /etc/issue
CentOS release 6.6 (Final)
Kernel
on an m
[root@h102 redis-3.0.7]# ./src/redis-server --version
Redis server v=3.0.7 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=db8110605b24fc73
[root@h102 redis-3.0.7]#
切换数据库
登录后默认是连接到0号数据库
数据的下标是从0开始的,代表第一个数据库,默认数据数据库没有下标,其实就是0号数据库
[root@h102 redis-3.0.7]# ./src/redis-cli -p 6379
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379>
可以使用 select 加上数据进行数据库切换
127.0.0.1:6379> select 2
OK
127.0.0.1:6379[2]> select 0
OK
127.0.0.1:6379> select 3
OK
127.0.0.1:6379[3]> select 4
OK
127.0.0.1:6379[4]>
切换后下标会变
配置
我们尝试切换到16
127.0.0.1:6379> select 16
(error) ERR invalid DB index
127.0.0.1:6379> select 15
OK
127.0.0.1:6379[15]> select 14
OK
127.0.0.1:6379[14]> select 13
OK
127.0.0.1:6379[13]> select 12
OK
127.0.0.1:6379[12]>
...
...
127.0.0.1:6379[3]> select 2
OK
127.0.0.1:6379[2]> select 1
OK
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379>
但是15-0号数据库有,说明默认有16个数据库可用
这个配置可以在这里看
127.0.0.1:6379> CONFIG GET databa*
1) "databases"
2) "16"
127.0.0.1:6379>
127.0.0.1:6379> CONFIG set databases 20
(error) ERR Unsupported CONFIG parameter: databases
127.0.0.1:6379>
并且发现不能修改
这个初始化配置是在启动redis之前在 redis.conf文件中指定的
[root@h102 redis-3.0.7]# cat redis.conf | grep -v "^#" | grep -v "^$"| grep databa
databases 16
[root@h102 redis-3.0.7]#
我们可以修改配置,指定20个库,重启服务
127.0.0.1:6379> CONFIG GET databa*
1) "databases"
2) "20"
127.0.0.1:6379> select 16
OK
127.0.0.1:6379[16]> select 18
OK
127.0.0.1:6379[18]> select 19
OK
127.0.0.1:6379[19]> select 20
(error) ERR invalid DB index
127.0.0.1:6379>
多出来了几个库,符合我们的预期
相关文章
- 从本体论开始说起——运营商关系图谱的构建及应用
- 如何成为一名数据科学家?
- 从未见过的堂兄杀了人,你的DNA是关键证据
- 20个安全可靠的免费数据源,各领域数据任你挑
- 20个安全可靠的免费数据源,各领域数据任你挑
- 阿里云李飞飞:All in Cloud时代,云原生数据库优势明显
- 基于Hadoop生态系统的一高性能数据存储格式CarbonData(性能篇)
- 大数据告诉你:10年漫威,到底有多少角色
- TigerGraph:实时图数据库助力金融风控升级
- Splunk利用Splunk Connected Experiences和Splunk Business Flow 扩大数据访问
- 大数据开发常见的9种数据分析手段
- 以免在景区看人,我爬了5W条全国景点门票数据...
- 【实战解析】基于HBase的大数据存储在京东的应用场景
- 数据科学家告诉你哪些计算机科学书籍是你应该看的
- Kafka作为大数据的核心技术,你了解多少?
- Spring Boot 整合 Redis 实现缓存操作
- 大数据学习必须掌握的五大核心技术有哪些?
- 基于Antlr在Apache Flink中实现监控规则DSL化的探索实践
- 甲骨文再次被Gartner评为分析型数据管理解决方案魔力象限领导者
- 爬取吴亦凡微博102118条转发数据,扒一扒流量的真假