redis介绍与布署

  • redis

    • remote dictionary server(远程字典服务器)

      • 是一个开源的,使用c语言编写的非关系型数据库,支持内存运行并持久化,采用key-value的存储形式。

      • 单进程模型意味着可以在一台服务器上启动多个redis进程,redis处理速度依赖于主进程的执行效率,意味着多个redis进程会增加处理效率,但是对cup的压力就会比较大,需要根据需要来决定redis的进程数量。多进程适合高并发的处理

      • 优点:

        • 极高的读写速度

        • 支持多种数据类型

        • 数据的持久化

        • 原子性:要么都执行,要么都不执行

        • 支持数据备份(主备结构备份)

      • 安装部署

        • 用阿里提供的版本较低,3.2

        • 去官网下载,https://www.redis.io

          • 下载相应的较高的版本,本案例以4.0.9为例

        • 准备前奏

          • 添加防火墙策略,关闭内核安全机制

          • 安装编译依赖包

            • gcc* zlib-devel

        • 解压安装

          • redis是直接配置好的程序,需要配置,值得一提的是需要在安装这一步指定路径前缀来确定安装位置。

        • 初始化

          • 在解压目录下的utils目录下会有一个初始化工具,源码包安装的数据库一般要经过初始化才能进行使用,
            • 标识1:指定redis进程端口,可以设置不同的端口来开启多个redis进程。

            • 标识2:指定配置文件的位置及名称。一般与端口对应。

            • 标识3:日志文件名称,也与端口保持一致

            • 标识4:对于redis来说持久化需要有对应的文件来保存数据,该项就是指定该文件的位置。

            • 标识5:指定redis的命令路径。

            • 建议在初始化时先优化命令路径,避免最后一项出现空需要手动指定。

          • 初始化完毕后进程就开始运行了,可以查看进程来确定。

            • netstat -anpt | grep redis

        • 配置参数的优化

          • 查找bind修改监听地址

            • 需要注意的是只能有一个bind,监听地址需要写在后面。

              • 例:bind 127.0.0.1 192.168.10.101

          • 查找port可以修改端口

            • port 6379

          • 查找daemon来决定是否以守护进程方式运行

            • daemonize yes

          • 查找loglevel可以修改记录日志的级别

            • 默认是notice

          • 查找pidfile可以看pid文件存放位置。

        • 服务控制脚本

          • /etc/init.d/redis_6379

            • 利用该脚本可以进行重启关闭等操作。可以做软链接方便操作。

        • redis工具

          • redis-server

            • 启动redis的工具

          • redis-benchmark

            • 检测本机redis运行效率的工具,redis自带

              • 常用的-c + -n 测试并发连接性能

              • -q -d 测试存取性能,测试完毕后退出

              • -t 测试某个命令可以测试多个用“,“分隔,-n 测试数量 -q 测试完退出

          • redis-check-aof

            • 修复aof持久化文件

          • redis-check-rdb

            • 修复rdb持久化文件

          • redis-cli

            • 命令行工具

              • 利用该工具可以进入到redis命令行模式,
              • 远程连接

                • -h 指定IP地址

                • -p 指定端口

              • help 获取帮助

        • redis常用命令

          • 存放数据

            • set 键 值

          • 获取数据

            • get 键 值

          • 查看所有键

            • keys *

            • 支持正则表达式

              • 例查看以v开头的:v*

              • 例查看固定未知数的v??,一个”?“代表一个未知

          • 判断键值是否存在

            • exists 键

              • 返回值为1代表存在。0为不存在

          • 删除键

            • del 键

          • 查看键类型

            • type 键

              • redis数据类型

                • String:最简单的类型,就是普通的set和get,作key value缓存。 

                • Hash:类似map的一种结构,一般就是可以将结构化的数据,比如一个对象给缓存在redis里

                • List:List是有序列表,可以通过list存储一些列表型的数据结构,类似粉丝列表、文章的评论列表之类的东西

                • Set:Set是无序集合,自动去重。

                • Sorted Set:Sorted Set是排序的set,去重但可以排序,写进去的时候给一个分数,自动根据分数排序

          • 重命名键

            • rename

            • renamenx

              • 建议使用该方式,该命令在重命名时会检测新名是否存在,避免被覆盖的可能。

          • dbsize

            • 查看当前库键数

          • 数据库之间切换

            • 默认redis库有16个范围0~15

            • select 库名

          • 数据库之间数据转移

            • move 键 库名

          • 清除数据

            • 当前库

              • flushdb

            • 所有库

              • flushall

        • redis持久化

          • rdb

            • 生成快照保存到磁盘内,下次启动将数据重新读到内存内。

            • 优点:占用资源少,对磁盘i/o压力小

            • 缺点:会造成数据的不一致性

            • 异步(半持久模式)

          • aof

            • 创建日志,将命令追加到日志末尾

            • 优点:数据一致性高

            • 缺点:占用资源较多,对磁盘i/o压力大

            • 同步(全持久化模式)

          • 选择参考依据

            • 性能较好,或对数据一致性要求较高采用aof

            • 性能差,对数据一致性要求不高采用rdb

          • 如果两者同时存在

            • 如果先开启了aof则会优先采用aof恢复数据

            • 如果先开启了rdb,会先恢复rdb数据,然后在恢复aof数据,并且aof会覆盖掉rdb的数据

          • 持久化配置修改

            • 在配置文件

              • 6379.conf

                • rdb持久化配置

                  • 查找save

                    • 分别表示,在900秒内有一个键做变动做一次快照,在300秒内有10个键做变动则做一次快照,在60秒内,有一万个键做变动就做一次快照。满足以上任意一个条件均作快照。
                  • 查找rdb

                    • 显示快照文件名称
                    • 在下方指明快照文件位置。

                    • 在附近可以看到该选项决定快照是否压缩,默认开启。

                • aof持久化配置

                  • 查找append

                    • 三种同步方式:
                    • always,每次发生变化立马写入磁盘

                    • everysec :每秒做一次快照。

                    • no:不做同步,交给其他程序决定如何同步。

                    • 第一行决定了aof模式是否开启

                    • 第二行决定了aof文件的名称

                  • aof运作机制的原因可能会造成冗余命令,在命令行输入该语句

                    • bgrewriteaof

                      • 重写操作可以在特定条件下自动去除冗余的命令

                    • 需要注意采用该策略需要将

                      • no-appendfsync-on-rewrite no 设置位no

                      • 该语句表示新写操作不同步

                    • aof比上次重写增长的比例,100为两倍

                • 性能管理

                  • redis-cli

                    • info memory

                      • 查看redis程序使用内存的大小。

                    • 回收策略

                      • 配置文件

                      • 命令行

                        • expire 键 过期时间

                      • 默认回收最近使用少的键而不是存在时间最久的键

                • 密码管理

                  • 永久设置

                    • 查找requirepass

                      • 默认注释,后面可以跟密码

                  • 临时设置

                    • 命令行

                      • config set requirepass 密码

                      • 设置密码后会造成原有数据丢失

                  • 连接方法

                    • redis-cli -a 密码

                    • 命令行

                      • auth 密码

                    • redis-cli -a 密码 shutdown

相关推荐

  1. Stable Diffusion 推荐硬件配置和本地化

    2024-07-11 21:34:03       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 21:34:03       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 21:34:03       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 21:34:03       57 阅读
  4. Python语言-面向对象

    2024-07-11 21:34:03       68 阅读

热门阅读

  1. 使用Apache Beam进行统一批处理与流处理

    2024-07-11 21:34:03       22 阅读
  2. 【LinuxC语言】手撕Http之处理POST请求

    2024-07-11 21:34:03       21 阅读
  3. 常用的简单的ps快捷键

    2024-07-11 21:34:03       19 阅读
  4. Bug汇总

    2024-07-11 21:34:03       20 阅读
  5. LVS集群(二)

    2024-07-11 21:34:03       22 阅读
  6. vscode连接unbuntu失败,显示Downloading vs code server...

    2024-07-11 21:34:03       19 阅读
  7. Memcached介绍和详解

    2024-07-11 21:34:03       20 阅读
  8. Qt常用基础控件总结—表格控件(QTableWidget类)

    2024-07-11 21:34:03       22 阅读
  9. pudb: Python的图形化调试器

    2024-07-11 21:34:03       24 阅读
  10. 派森学长带你学python—字符串

    2024-07-11 21:34:03       20 阅读
  11. DP学习——设计模式怎么来的?

    2024-07-11 21:34:03       17 阅读
  12. 7.10飞书一面

    2024-07-11 21:34:03       17 阅读
  13. wpf 不同 DataContext 之间的通讯

    2024-07-11 21:34:03       21 阅读