千家信息网

redis内存数据库

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,===> Redis内存数据库简介:Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。===> Redis 的特点:->基于内存-> 持久化: RDB、AOF->
千家信息网最后更新 2026年10月31日redis内存数据库

===> Redis内存数据库简介:

Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。


===> Redis 的特点:

->基于内存

-> 持久化: RDB、AOF

-> 消息机制:支持String,只支持Topic的消息(广播)

-> 丰富的数据类型

-> 支持简单的事务

-> 支持主从复制

-> HA(哨兵): 对版本有要求,需要 2.4 版本以上


===> Redis的安装和配置: 需要gcc的编译器

-> Redis 单机部署:

        tar -zxvf redis-3.0.5.tar.gz                make        make PREFIX=/app/redis install

-> Redis的相关命令

redis-benchmark 提供的一个压力测试工具,模拟:10万操作

redis-check-aof 检查AOF日志文件

redis-check-dump 检查RDB快照文件

redis-cli 命令行

redis-sentinel 哨兵(Redis的HA) -----> 配置文件:sentinel.conf 2.4版本以上

redis-server 服务器

-> 配置文件

--- redis.conf

daemonize yes 改成yes 后,启动后会在后台运行

port 6379

-> 服务启动命令:redis-server conf/redis.conf

-> 客户端连接命令: redis-cli -p 6379 | redis-cli -h 192.168.10.210 -p 6379


===> Redis 集群的安装和配置:(星型架构,线型架构)

-> 此处只讲解星型架构(此架构结构为单台服务器上使用不同端口启动三个服务组成集群,多台服务器同理)

--- 主:6379端口 (关闭 RDB 和 AOF)

--- 从:6380, 6381端口 (开启 RDB 和 AOF)

-> 配置文件:

        redis6379.conf                daemonize yes                #save 900 1                #save 300 10                #save 60 10000                                                pidfile /app/redis/pids/redis_6379.pid                logfile "/app/redis/logs/redis_6379/redis.log"                dbfilename dump.rdb                dir "/data/redis_data/redis_6379"                                    appendonly no                appendfilename "appendonly6379.aof"                                            redis6380.conf                port 6380                slaveof 192.168.157.11 6380                                    pidfile /app/redis/pids/redis_6380.pid                logfile "/app/redis/logs/redis_6380/redis.log"                dbfilename dump.rdb                dir "/data/redis_data/redis_6380"                                    appendonly yes                appendfilename "appendonly6380.aof"                                            redis6381.conf                port 6381                slaveof 192.168.157.11 6379                pidfile /app/redis/pids/redis_6381.pid                logfile "/app/redis/logs/redis_6381/redis.log"                dbfilename dump.rdb                dir "/data/redis_data/redis_6381"                                    appendonly yes                appendfilename "appendonly6381.aof"              

(*)注意:默认:从节点只读

                (error) READONLY You can't write against a read only slave.                修改参数:                slave-read-only yes


-> Redis的HA:哨兵机制(要在解压的安装包中copy sentinel.conf 文件到 /conf 目录下)

      sentinel monitor mymaster  192.168.10.210  6379  1      #                              IP            端口   哨兵个数      sentinel auth-pass          # 配置连接主节点的密码      sentinel down-after-milliseconds  mymaster  30000      # 表示 30 秒内如果没有收到主节点的心跳,哨兵就认为主节点down      sentinel  parallel-syncs  mymaster 1      # 选举出新的主节点后,可以同时连接其他从节点的个数      sentinel  failover-timeout  mymaster  180000      # 失败切换时,允许的最大时间

---哨兵启动命令:redis-sentinel sentinel.conf

-> Redis的分片:

---Twemproxy 是一种代理分片机制, 由 Twitter 开源

Twemproxy 作为代理,可接受来自多个程序 的访问,按照路由规则,转发给后台的各个 Redis 服务器, 再原路返回

--- 安装Twemproxy

       git clone https://github.com/twitter/twemproxy.git       cd twemproxy/              CFLAGS="-ggdb3 -O0" autoreconf -fvi && ./configure --prefix=/app/proxy --enable-debug=log && make &&  make install



--- 配置文件:nutcracker.yml (需要在解压的安装包/conf 目录下copy 到安装目录的 conf 目录下)

       alpha:       listen: 127.0.0.1:22121       hash: fnvla_64       distribution: ketama         auto_eject_hosts: true         redis: true         server_retry_timeout: 2000         server_failure_limit: 1         servers:         - 192.168.10.210:6380         - 192.168.10.210:6381

--- 检查配置文件是否正确: ./nutcracker -t conf/nutcracker.yml

--- 启动代理服务器: ./nutcracker -d -c conf/nutcracker.yml

--- 此时连接Redis 需要使用 Twemproxy 配置的端口连接: redis-cli -p 22121

===> Redis的操作:基于key-value形式

->

---

===> Redis的事务: 不是真正的事务

-> Redis的事务的本质:将一组操作放入队列中,批量执行

-> 对比Oracle和Redis的事务

-> Redis 的事务实例:(银行转账)

      set tom 1000      set mike 1000      multi      decrby tom 100      incrby mike 100      exec


===> Redis的锁机制

-> 核心:当事务提交的时候,如果监控的值,发生变化,则提交失败

命令:watch

-> Redis 的锁实例:(买票)

      set ticket 1              set tom 1000                用户一:tom      multi      decr ticket      decrby tom 100      exec  -------> 提交的时候,慢了一点                1) (integer) -1   ====> 票数不可能是-1      2) (integer) 900                用户二:在tom提交前,已经把票买走了        decr ticket


===> Redis的消息机制

-> Redis 消息系统类型

--- 同步消息系统:需要对方的回答

--- 异步消息系统:不需要等待对方回答

-> Redis 消息类型

--- Queue: 队列(点对对)

--- Topic: 主题 (广播)

(*)Redis和Kafka:只支持Topic

(*) JMS: Java Message Service ----> 都支持:Queue和Topic

推荐:Weblogic


-> Redis 消息相关命令

publish: 发布消息 指定频道

subscribe:订阅消息 指定频道

psubscribe:订阅消息 使用通配符指定频道



===> Redis的持久化: RDB、AOF

-> 持久化作用:进行恢复

-> RDB:快照的方式。每隔一段时间,把内存中的数据写到rdb文件中

--- 优点:恢复的速度快

--- 缺点:如果在两次RDB之间发生了掉电,数据肯定丢失

--- 参数:

规则:从下往上

save 900 1 在15分钟内,如果有1个key的value发生了变化,就产生RDB文件

save 300 10 在5分钟内,如果有10个key的value发生了变化,就产生RDB文件

save 60 10000 在60秒内,如果有1w个key的value发生了变化,就产生RDB文件

stop-writes-on-bgsave-error yes 如果在写RDB文件的时候产生了错误,停止新的数据写入

rdbcompression yes 是否压缩(优点:节约了空间 缺点:恢复的效率低),可以设置为:no

rdbchecksum yes 校验和来检查RDB文件是否是好的

dbfilename dump.rdb 如果在集群下,一台主机上运行多个Redis的实例,建议区别rdb文件

dir ./ 保存的目录



-> AOF:append only file(记录日志)

--- 优点:数据安全性高

--- 缺点:恢复速度慢,需要重做日志,达到恢复的目的

--- 默认禁用

--- 参数:

        appendonly no  ===> yes     #开启AOF                        appendfilename "appendonly.aof"  # 如果在集群下,一台主机上运行多个Redis的实例,建议区别aof文件                          # 什么时候记录日志???        # appendfsync always  # 每个操作都记录日志。最安全,性能最差        appendfsync everysec  # 默认:每秒        # appendfsync no      # 由操作系统决定        no-appendfsync-on-rewrite no # 重写发生的时候,是否写入aof的新日志        # 什么时候执行AOF重写?        auto-aof-rewrite-percentage 100        auto-aof-rewrite-min-size 64mb                                                        # 什么是AOF的重写:rewrite                set i 0                incr i                incr i                                                                ======> 问题: AOF文件太大了                100次                ****                incr i                最终:i = 100                                                # 演示:AOF的重写                模拟:10万个操作                bin/redis-benchmark -n 100000                 

===> Redis 问题链接:(找了几个比较经典的问题处理链接,留作收藏,以后备用)


-> http://blog.sina.com.cn/s/blog_a1e9c7910102vmx5.html

-> http://blog.csdn.net/a491857321/article/details/52006376

文件 消息 配置 数据 事务 命令 服务 哨兵 日志 时候 节点 支持 服务器 机制 目录 端口 实例 架构 系统 集群 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 手冲咖啡和咖啡机区别 互联网的科技 互联网科技深圳 朗新科技与工业互联网 狮子座互联网科技 华中科技大学互联网 润盈互联网科技 科技大学互联网专业好不好 中盈科技互联网信息有限公司 互联网经济与金融科技 南平创想时代互联网科技有限公司 晓花互联网科技有限公司网址 杭州壁岐互联网科技有限公司 苏州铭阳互联网科技有限公司 健康食品互联网创新科技园项目 卡尔迅互联网科技有限公司 山东大美朱楼互联网科技有限公司 西安有哪些互联网高科技企业 东风日产互联网科技公司叫什么 利用互联网等科技手段 华服互联网科技靠谱吗 互联网中国科技 网络科技有限互联网 杭州互联网科技公司 广州凡科互联网科技 北京大学互联网科技怎么样 互联网科技项目计划书材料类 威龙国际互联网科技公司 烟台灵鸽互联网科技有限公司 互联网科技对化妆品行业
0