如何提升分布式锁性能
1、锁定的代码块尽量的少,和尽早的释放锁;
2、redis集群有助于redis的处理效率;
3、库存数据不一定使用分布式锁,而是可将库存放入redis中,然后递减方式来实现扣减;
4、复杂一点的实现也可以采用:分段分布式锁,将库存分成好几个数据,然后锁这几个数据,也能提高性能
Redis挂了数据如何处理
1、redis有集群,不会轻易不可用;若某个主节点挂了则通过sentinel哨兵自动用从节点替换为主节点;
2、若redis真不可使用;可以支持查询数据库,业务还是一样可执行;然后再修复redis;
3、如果要完整的思考在redis挂掉的情况下,微服务需要高效稳定运行,那么可以在每台微服务中都设置本地缓存(hashMap、memcache、caffeineCache都可以)
redis常见数据类型
Redis 是一种基于内存的键值存储数据库,支持多种数据类型,每种数据类型都有其特定的用途和适用场景。以下是 Redis 中常见的数据类型:
- 字符串(String):
- 最简单的数据类型,可以存储字符串、整数或者浮点数。常用命令包括 SET、GET、INCR 等。
- 哈希表(Hash):
- 键值对集合,其中每个键都包含一个字段和值的映射表。适合存储对象的属性集。常用命令包括 HSET、HGET、HDEL 等。
- 列表(List):
- 一个有序的字符串元素集合,可在头部或尾部插入元素。适合实现队列、栈等数据结构。常用命令包括 LPUSH、RPUSH、LPOP、RPOP 等。
- 集合(Set):
- 无序且唯一的字符串集合,支持交集、并集、差集等操作。适合存储不重复的元素。常用命令包括 SADD、SREM、SMEMBERS 等。
- 有序集合(Sorted Set):
- 类似集合,但每个元素都关联一个分数(score),可以按照分数排序。适合实现排行榜、范围查找等功能。常用命令包括 ZADD、ZRANGE、ZREVRANK 等。
项目中缓存的数据类型
缓存在redis中的数据类型有:
- 字符类型的常规缓存内容(验证码)
- 列表类型的有首页广告列表
- 集合类型的热门商品
redis主从集群与分片集群的区别
- 主从集群(Master-Slave Replication):
- 主从集群是通过主节点(Master)和若干个从节点(Slave)组成的集群。主节点负责处理写操作和广播读操作给所有从节点,从节点负责处理读操作并复制主节点的数据。
- 主从集群的优点是简单易用,从节点可以提高读取性能和数据冗余,同时也能在主节点故障时提供故障转移。提高redis的可用性
- 分片集群(Sharded Cluster):
- 分片集群将数据分片存储在多个节点上,每个节点负责存储部分数据。客户端根据一定的规则将数据请求路由到相应的节点上。
- 分片集群的优点是能够横向扩展,提高了整体的读写性能和存储容量;同时也能提高系统的可用性和容错能力。
总的来说,主从集群适合简单场景下的读写分离和故障恢复,而分片集群适合需要大规模扩展和高性能的场景。