1-Redis - 扯淡篇

about

Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,它的主要特点:

  • 高性能Key-Value服务器
  • 支持多种数据结构
  • 丰富的功能:pipeline、慢查询、发布订阅
  • 高可用分布式支持

Redis的前世今生

在2008年北京开奥运会的时候,意大利一个叫做塞尔瓦托的技术大佬, 做了一个基于MySQL的的网站实时统计系统LLOOGG.com。
但不久,这个大佬, 对MySQL的性能感到失望,于是Redis慢慢就诞生了......

谁在使用Redis

嗯~~,试问,现在还有谁没有在用Redis?

Redis八大特性

速度快

官方说redis能达到十万OPS(operation per second)每秒操作的次数。

这是因为redis是由C语言实现,并且redis的数据存储在内存中。

持久化

redis的所有数据保存在内存中,对数据的更新将异步的保存在磁盘上。

多种数据结构

redis支持字符串、哈希、链表、集合和有序集合五种数据类型。

衍生的其他数据结构:

  • 基于字符串实现:

    • BitMaps:位图
    • HyperLogLog:超小内存唯一值计数
  • 基于集合实现:

    • GEO:地理位置

支持多种客户端语言

Python、Java........

功能丰富

发布订阅、事务、Lua脚本、Pipeline....

简单

Redis的单机源码大约只有23000行代码,所以,你可以去阅读它的源码,甚至自定义.....

Redis不依赖外部库

单线程模型

主从复制

Redis有主服务器和从服务器是实现高可用的基础。

高可用、分布式

Redis从v2.8开始使用Redis-Sentinel支持高可用。

Redis从v3.0开始使用Redis-Cluster支持分布式。

Redis典型应用场景

  • 缓存系统,在项目架构中,实现缓存层功能。

  • 计数器,例如微博的转发数和评论数

  • 消息队列,简单的消息队列可以用Redis来实现。

  • 列表/有序集合:排行榜,有序集合可以实现各种排行榜,如音乐、视频排行榜等。

  • 集合:社交网络,粉丝数、关注数、最新粉丝、共同关注、时间轴等。

  • 实现检查用户名是否已注册。

  • 实时系统,垃圾邮件处理。


that's all,see also:

redis总结

posted @ 2018-10-12 17:57  听雨危楼  阅读(1960)  评论(0编辑  收藏  举报