Redis从小白到小工

这个blog我们来聊聊Redis

Redis是一款非常优秀的内存数据库,长期处于全球数据库排名前十的地位。Redis的特点是从内存读取及修改数据,性能是直接读取磁盘的千倍甚至更高。在当前高并发的系统上,性能提升不仅能优化用户体验,更能带来业务的增长。无论是DBA还是开发、运维、测试人员都需要对Redis有一定的了解。

本人作为一个DBA,工作中一直有使用Redis,刚开始是架构师或运维同事进行安装和维护。近期这部分维护工作移交到我这边,于是将近期学Redis的笔记整理为系列blog。

一.Redis安装和配置

作为DBA,对于Redis安装及配置一定要熟悉,常见的配置文件,及配置文件各个选项的优点和缺点。这样可以根据不同的应用场景,配置不同的参数,提升Redis的性能。定期培训开发人员,使开发过程中更好的使用Redis,遇到性能问题及时监控及反馈,保证Redis在生产环境高效稳定的运行。

redis安装之yum安装
redis安装之源码安装
redis配置介绍
redis设置密码

二.Redis数据结构

在使用Redis的过程中,一定要使用合适的数据类型,Redis的各个不同的数据类型适用于不同的业务场景,如果使用不当,一定程度上会影响Redis的性能。
下列blog介绍了Redis的各个数据类型及操作各个数据类型的命令。

redis数据类型
redis string类型命令
redis hash类型命令
redis list类型命令
redis 集合set类型命令
redis 有序集合zset命令

三.Redis事务和持久化

Redis虽然是内存数据库,区别于传统的Oracle、MySQL等关系型数据库,但是也有事务和持久化的功能。

Redis里面也支持事务,同一组操作要么同时成功,要么同时失败,但是需要注意,如事务中有错误命令,整个事务默认已回滚,后面的操作已无效,这点与关系型数据库存在一定的差别。

Redis数据都在内存里面进行读取及操作,但是内存里面的数据不是持久的,重启后数据就会丢失。于是Redis引入了持久化的概念,一定间隔时间内将数据从内存保留到磁盘,保证数据的持久化。重启后直接从磁盘里面将数据加载到内存,保证重启后数据依旧存在。
但是需要特别注意的就是,Redis的持久化和关系型数据库的WAL(先写日志)的操作不同,磁盘里的数据与内存里的数据存在一定的延迟,重启后会丢一部分内存里的数据。切记不要把重要的数据单独放在Redis里,可以放在MySQL里面,然后Redis仅仅当做缓存使用。

redis事务
redis持久化

四.Redis客户端连接

Redis客户端的管理,这个DBA需要掌握,特殊情况下可以直接kill连接。

redis客户端连接

五.Redis命令

Redis日常管理的命令,DBA需要烂熟于心。例如启动和停止Redis,查看当前数据库下的key,结合数据类型,查看当前数据库下存在多少Redis的key,特殊情况下,DBA后台进行手工维护某些key值。

redis启停及登陆命令
redis key命令

六.Redis高可用

数据保存在单个节点上,始终是不安全的,万一主机或服务出现故障,存在数据丢失的风险。于是引入了Redis的从库,主库对外提供服务,从库从主库实时同步数据,来保证数据安全。但是当主库出现了问题,需要人工的将指向主库的应用改到从库。于是引入了哨兵的服务,用来监控Redis的主从,当主库不可用,进行主从切换,提升从库为主库。
当然,更给力的架构就是Redis集群了,集群内对存储的数据进行分片,将数据存储到多个Redis实例中,将Redis的数据根据一定的规则分配到多台机器。每个主库都有自己的从库,当主库出现故障,从库提升为主库,保证服务的可用性。而且当并发提升,可以增加集群节点来做负载均衡。

redis主从搭建
redis哨兵模式
redis 集群简介

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值