Redis快速复习

什么是Redis

官网地址 https://redis.io/,中文地址:https://www.redis.net.cn/

Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker。

Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。

Redis怎么使用

使用比较简单,可以用Redis命令(redis-cli),也可以使用各种编程语言的封装库。

1、select,选择指定库

2、常见存储类型:String、Hash、List、Set、ZSet(sorted set)

3、get、set、del 对应最基本的查询、设置、删除。其他类型可以类推。

SET name "value"
HMSET myhash field1 "Hello" field2 "World"
lpush name “value1”
sadd name "value"
zadd name 1 “value”

4、基于List类型可以实现消息队列。更高级的队列可以使用pub/sub

5、数据统计需求可以考虑HyperLogLog。

6、geo类型。专门处理地理位置类数据(value有两个值:经度和纬度)

Redis性能

单机 100000+的QPS。

1、基于内存读写数据。(数据库一般是磁盘存储,从内存向数据库转移数据的过程被称为持久化)。

2、单线程。(处理网络请求只有1个线程。避免多线程、多进程切换,坏处是如果读写耗时过度,就失去可用性)

3、epoll。(io多路复用。简单说,有IO读写事件的时候,启动处理)

以上三个特性保证Redis的读写性能,使之成为缓存服务的主流选择。

Redis的命令和架构都非常简洁,易于理解。专注创造效率。

Redis持久化

持久化的主要目的是数据备份和数据恢复。

如果有其他存储机制,仅仅把Redis当成缓存服务,可以不需要Redis自身的持久化。

1、RDB (Redis DataBase)和 AOF (Append Only File)

2、RDS相当于全库备份

3、AOF相当于增量备份

4、RDB有阻塞(save)和非阻塞(bgsave)两种方式。前者保证一致性不保证可用性;后者保证可用性不保证一致性。

Redis集群

以下两种模式,在数据同一份的条件下,增加查询的并发服务能力。

1、master-slave模式。master支持读写,slave支持读。

2、sentinel模式。在master-slave基础上,当master挂掉后,可以选择一个slave升级为master

以下模式,通过数据切分为不同分区,增加并发服务能力。

1、cluster模式。

2、cluster主从模式。在cluster基础上,实现节点的主从模式,从而保证高可用。

不过,由于Redis的原始目标就是缓存服务,追求简单高效的原则,所以其集群能力有限。

参考

redis 为什么可以如此的高并发,https://www.jianshu.com/p/78cedbd8591d

为什么说Redis是单线程的以及Redis为什么这么快!https://blog.csdn.net/xlgen157387/article/details/79470556

Redis master/slave,sentinel,Cluster简单总结,https://www.cnblogs.com/weiguo21/p/9495948.html


其它

古人云“温故而知新”。

定期复习一下自己的知识体系和收获,能够更好的规划未来。

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();