【Redis】 总结

         redis作为nosql数据库应用很广泛,很多企业都在用。有很多优点:提供持久化服务,支持超过10w/s的读写。数据类型丰富,支持发布订阅(虽然企业都用mq实现,但是人家支持啊。。也挺厉害的。。),主从架构。

 

     总结从几个方面:

  • 1.nosql简介
  • 2.数据类型
  • 3.配置文件解析
  • 4.持久化
  • 5.master/slave

 

        3,4,5是重点内容。

 

        关于持久化的配置,依据平时工作经验而言,如业务需求对于数据更新频繁,一致性要求高,采用AOF。更新不频繁,可以容忍少量数据丢失,snapshot为主。

 

        Redis的主从架构,能帮助我们实现读多,写少的情况。但是所有的slave节点数据的复制和同步都由master节点来处理,会照成master节点压力太大,所以我们使用主从从架构来处理。Redis的主从架构,如果master发现故障了,还得手动将slave切换成master继续服务,手动的方式容易造成失误,导致数据丢失,那redis有没有一种机制可以在master和slave进行监控,并在master发送故障的时候,能自动将slave切换成master呢?哨兵就是自动升从为主的一个应用。哨兵的作用: 1、监控redis进行状态,包括master和slave 2、当masterdown机,能自动将slave切换成master。




### Redis 实训总结与经验分享 Redis 是一种高性能的内存数据库,广泛应用于缓存、消息队列、分布式锁等场景。以下是对 Redis 实训中关键点的总结和经验分享。 #### 1. Redis 的安全问题 在实际项目中,Redis 的安全性是一个不可忽视的问题。如果配置不当,可能会导致数据泄露、拒绝服务攻击或数据篡改等问题[^1]。因此,在使用 Redis 时需要特别注意以下几点: - **访问控制**:通过设置密码(`requirepass` 配置项)限制对 Redis 服务器的访问。 - **限流防护**:启用 Redis 的限流机制,防止恶意请求导致的服务中断。 - **数据加密**:对于敏感数据,可以采用数据加密技术确保其完整性。 #### 2. Redis 的性能优化 Redis 的高性能主要得益于其基于内存的操作模式以及简单的键值存储结构。在实际应用中,可以通过以下方式进一步提升 Redis 的性能[^2]: - **缓存策略**:将热点数据存储到 Redis 中,减少对后端数据库(如 MySQL)的直接访问压力。例如,让 80% 以上的查询走缓存,20% 以下的查询走数据库。 - **持久化配置**:根据业务需求选择合适的持久化方式(RDB 或 AOF)。RDB 提供快照式持久化,适合数据恢复;AOF 提供更高的数据安全性,但可能会影响性能。 - **分片与集群**:当单机 Redis 的容量或性能无法满足需求时,可以考虑使用 Redis 分片或 Redis 集群来扩展存储能力和并发处理能力。 #### 3. Redis 的备份与恢复 为了确保数据的安全性和可靠性,定期进行 Redis 数据备份是非常重要的[^1]。以下是备份与恢复的最佳实践: - **自动备份**:通过配置定时任务(如 `cron`)定期生成 RDB 文件。 - **增量备份**:结合 AOF 日志实现增量备份,减少全量备份带来的性能开销。 - **灾难恢复**:在主从架构中,确保从节点的数据同步正常,以便在主节点故障时快速切换。 #### 4. 权限管理与可视化范围 在某些项目中,Redis 的数据可能需要根据不同角色的权限进行访问控制。例如,在一个微信小程序开发项目中,不同用户角色可以查看不同的数据范围[^3]。类似地,可以在 Redis 中实现类似的权限管理逻辑: - **命名空间隔离**:为不同角色的数据设置独立的命名空间前缀,避免数据冲突。 - **ACL 控制**:Redis 6.0 及以上版本支持 ACL(Access Control List),可以为不同用户分配特定的命令权限和键空间访问权限。 #### 5. Maven 项目中的 Redis 集成 在基于 Maven 的 Spring Boot 项目中集成 Redis 时,可以通过以下步骤完成配置[^4]: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> ``` 同时,需要在 `application.yml` 或 `application.properties` 文件中配置 Redis 连接信息: ```yaml spring: redis: host: localhost port: 6379 password: your_password timeout: 5000ms lettuce: pool: max-active: 8 max-idle: 8 min-idle: 0 ``` #### 6. 常见问题与解决方法 在 Redis 实训过程中,可能会遇到以下常见问题: - **内存不足**:可以通过调整 `maxmemory` 和 `maxmemory-policy` 参数来解决。 - **网络延迟**:检查 Redis 服务器与客户端之间的网络连接是否正常。 - **数据丢失**:确保持久化配置正确,并定期测试数据恢复流程。 --- ### 示例代码:Redis 缓存操作 以下是一个简单的 Redis 缓存操作示例: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; @Service public class CacheService { @Autowired private StringRedisTemplate redisTemplate; public void setCache(String key, String value) { redisTemplate.opsForValue().set(key, value); } public String getCache(String key) { return redisTemplate.opsForValue().get(key); } } ``` ---
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值