为你自己学Redis
  • README
  • 安装
    • macos下安装redis
  • 第1章 构建Redis开发环境
    • 1.1 Redis概述
    • 1.2 了解必要的Docker技能
    • 1.3 安装和配置基于Docker的Redis环境
  • 第2章 实践Redis的基本数据类型
    • 2.1 Redis缓存初体验
    • 2.2 针对字符串的命令
    • 2.3 针对哈希类型变量的命令
    • 2.4 针对列表类型变量的命令
    • 2.5 针对集合的命令
    • 2.6 针对有序集合的命令
  • 第3章 实践Redis的常用命令
    • 3.1 键操作命令
    • 3.2 HyperLogLog相关命令
    • 3.3 lua脚本相关命令
    • 3.4 排序相关命令
  • 第4章 实践Redis服务器和客户端的操作
    • 4.1 Redis服务器管理客户端的命令
    • 4.2 查看Redis服务器的详细信息
    • 4.3 查看并修改服务器的常用配置
    • 4.4 多个客户端连接远端服务器
  • 第5章 Redis数据库操作实战
    • 5.1 切换数据库操作
    • 5.2 Redis事务操作
    • 5.3 地理位置相关操作
    • 5.4 位图数据类型的应用
    • 5.5 慢查询实战分析
  • 第6章 Redis数据持久化操作
    • 6.1 Redis持久化机制概述
    • 6.2 AOF持久化机制实战
    • 6.3 RDB持久化机制实战
    • 6.4 如何选用持久化方式
  • 第7章 搭建Redis集群
    • 7.1 搭建基于主从复制模式的集群
    • 7.2 搭建哨兵模式的集群
    • 7.3 搭建cluster集群
  • 第8章 GO整合MySQL与Redis
    • 8.1 GO通过redigo读写Redis
    • 8.2 Go与各种Redis数据类型
    • 8.3 Redis与MySQL的整合
    • 8.4 Redis缓存实战分析
  • 第9章 Redis应用场景与案例实现
    • 9.1 Redis消息队列实战
    • 9.2 Go实战Redis分布式锁
Powered by GitBook
On this page
  • 5.1.1 查看和设置默认的数据库个数
  • 5.1.2 用SELECT命令切换数据库
  1. 第5章 Redis数据库操作实战

5.1 切换数据库操作

在默认情况下,Redis服务器在启动时会创建16个数据库,不同的应用程序可以连到不同的数据库上,通过键值对的形式实现缓存等操作.

在实际项目里,常见的操作有通过修改配置更改在启动Redis服务器时创建数据库的个数,以及通过SELECT命令切换当前程序所用的Redis数据库.

5.1.1 查看和设置默认的数据库个数

  • step1. 停止并删除之前创建的redis容器

(base) root@yuanhong StudyRedisBaseOnDocker % docker ps -a 
CONTAINER ID   IMAGE                        COMMAND                  CREATED        STATUS                    PORTS     NAMES

可以看到,此时没有任何容器被启动或停止

  • step2. 创建一个空的配置文件redis.conf

(base) root@yuanhong StudyRedisBaseOnDocker % cd conf/chapter5/section5-1 
(base) root@yuanhong section5-1 % cat redis.conf
(base) root@yuanhong section5-1 % 
  • step3. 基于上述配置文件创建redis服务端

(base) root@yuanhong section5-1 % docker run -itd --name redis-server -v /StudyRedisBaseOnDocker/conf/chapter5/section5-1/redis.conf:/redisConfig/redis.conf -p 6379:6379 redis:latest redis-server /redisConfig/redis.conf
2c51ddee569950dd0d6b460433f176239aa6ade427d61e2f57f87edec8d8204c

此时由于配置文件中没有内容,所以启动时还是会加载各种默认的配置参数

  • step4. 检查数据库数量

(base) root@yuanhong section5-1 % docker exec -it redis-server /bin/bash
root@2c51ddee5699:/data# redis-cli
127.0.0.1:6379> CONFIG GET databases
1) "databases"
2) "16"
  • step5. 停止容器并修改配置文件

停止容器:

127.0.0.1:6379> exit
root@2c51ddee5699:/data# exit
exit
(base) yanglei@yuanhong section5-1 % docker stop redis-server      
redis-server

修改配置文件的内容如下:

(base) yanglei@yuanhong section5-1 % cat redis.conf 
# 指定数据库数量
databases		 12
  • step6. 重新启动容器

(base) yanglei@yuanhong section5-1 % docker start redis-server
redis-server 
  • step7. 进入容器检查配置是否生效

(base) yanglei@yuanhong section5-1 % docker exec -it redis-server /bin/bash
root@2c51ddee5699:/data# redis-cli
127.0.0.1:6379> CONFIG GET databases
1) "databases"
2) "12"

5.1.2 用SELECT命令切换数据库

使用CLIENT LIST命令查看客户端连接信息:

127.0.0.1:6379> CLIENT LIST
id=3 addr=127.0.0.1:35774 laddr=127.0.0.1:6379 fd=8 name= age=121 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=26 qbuf-free=40928 argv-mem=10 obl=0 oll=0 omem=0 tot-mem=61466 events=r cmd=client user=default redir=-1

其中的db=0表示当前客户端使用的是0号数据库

在第0号数据库中设置一些键值对:

127.0.0.1:6379> SET name 'Peter'
OK

使用SELECT命令切换数据库:

127.0.0.1:6379> SELECT 1
OK

再次查看客户端连接信息:

127.0.0.1:6379[1]> CLIENT LIST
id=3 addr=127.0.0.1:35774 laddr=127.0.0.1:6379 fd=8 name= age=286 idle=0 flags=N db=1 sub=0 psub=0 multi=-1 qbuf=26 qbuf-free=40928 argv-mem=10 obl=0 oll=0 omem=0 tot-mem=61466 events=r cmd=client user=default redir=-1

可以看到,此时db=1

获取刚刚设置的key:

127.0.0.1:6379[1]> GET name
(nil)

切换回0号数据库后再次获取刚刚设置的key:

127.0.0.1:6379[1]> SELECT 0
OK
127.0.0.1:6379> GET name
"Peter"

在实际应用中,一般不会更改Redis服务器的数据库个数.但是当不同的应用同时使用同一个Redis服务器时,建议让不同的应用使用不同的数据库,比如让订单应用模块使用0号数据库,会员应用模块使用1号数据库

Previous第5章 Redis数据库操作实战Next5.2 Redis事务操作

Last updated 1 year ago