一:常见功能: 

1:哨兵(sentinel)和复制(replication)

哨兵可以管理多个redis服务器,提供监控、提醒以及自动的故障转移的功能。replication 负责让一个redis服务器可以配备多个备份的服务器

redis就是利用这2个功能来保证redis的高可用的

2:事务

一次性执行多个命令,保证原子性

3:LUA脚本

在事务的基础上,如果我们需要在服务器一次性执行更复杂的操作,lua就可以用上了

4:持久化

redis会把内存中的数据写入硬盘中,在redis重启的时候加载这些数据,最大限度的降低缓存丢失带来的影响。

5:集群(cluster)

单台服务器的资源总是有上线的,cpu资源和IO资源可以通过主从复制,进行读写分离,把一部分cpu和io的压力转移到从服务器上,类似mysql的主从同步

二:redis的优势

1:速度快,因为数据存在于内存中,类似hashmap的优势就是查找和操作的时间复杂度都是o(1)

2:支持丰富的数据类型,string、list、hash、set、zset

3:支持事务,操作都是原子性的。

4:丰富的特性:可用于缓存、消息,按key设置过期时间,过期自动删除

 

redis单点吞吐量  tps 8万/秒  qps达10w/秒

三:QPS和TPS

QPS:应用系统每秒钟最大能接受的用户访问量

每秒钟处理完请求的次数,这里是处理完,具体是指发出请求到服务器处理处理完成功返回结果。可以理解在server中有个counter,每处理一个请求+1,1秒钟后counter=QPS

TPS:每秒钟最大能处理的请求数

四:redis和memcached比较

1:memcached所有的值都是简单的字符串,redis支持更多的数据类型

2:redis速度比memcached快很多

3:redis可以持久化数据

4:redis支持数据备份,即master-slave模式的数据备份

五:redis淘汰策略

在Redis中,允许用户设置最大使用内存大小server.maxmemory,当Redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。

1.volatile-lru:从已设置过期的数据集中挑选最近最少使用的淘汰

2.volatile-ttr:从已设置过期的数据集中挑选将要过期的数据淘汰

3.volatile-random:从已设置过期的数据集中任意挑选数据淘汰

4.allkeys-lru:从数据集中挑选最近最少使用的数据淘汰

5.allkeys-random:从数据集中任意挑选数据淘汰

6.noenviction:禁止淘汰数据

redis淘汰数据时还会同步到aof

 

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐