redis基础
官网地址:https://redis.io/
Redis和Memcached是非关系型数据库也称为NoSQL数据库,MySQL、Mariadb、SQL Server、PostgreSQL、
Oracle 数据库属于关系型数据(RDBMS, Relational Database Management System)
redis简介
Redis(Remote Dictionary Server)在2009年发布,开发者Salvatore Sanfilippo是意大利开发者,他本想为自己的
公司开发一个用于替换MySQL的产品Redis,但是没有想到他把Redis开源后大受欢迎,短短几年,Redis就有了很
大的用户群体,目前国内外使用的公司有GitHub、新浪微博、 知乎网等
redis是一个开源的、遵循BSD协议的、基于内存的而且目前比较流行的键值数据库(key-value database),是一个
非关系型数据库,redis提供将内存通过网络远程共享的一种服务,提供类似功能的还有memcached,但相比
memcached,redis还提供了易扩展、高性能、具备数据持久性等功能。
Redis在高并发、低延迟环境要求比较高的环境使用量非常广泛,目前redis在DB-Engine月排行榜https://db-engines.com/en/ranking 中一直比较靠前,而且一直是键值型存储类的首位。
redis对比memcached
1、支持数据的持久化:可以将内存中的数据保持在磁盘中,重启redis服务或者服务器之后可以从备份文件中恢复数据到内存继续使用。
2、支持更多的数据类型:支持string(字符串)、hash(哈希数据)、list(列表)、set(集合)、zet(有序集合)
3、支持数据的备份:可以实现类似于数据的master-slave模式的数据备份,另外也支持使用快照+AOF。
4、支持更大的value数据:memcache单个key value最大只支持1MB,而redis最大支持512MB。
5、Redis 是单线程,而memcache是多线程,所以单机情况下没有memcache并发高,但redis 支持分布式集群以实现更高的并发,单Redis实例可以实现数万并发。
6、支持集群横向扩展:基于redis cluster的横向扩展,可以实现分布式集群,大幅提升性能和数据安全性。
7、都是基于C语言开发
redis 典型应用场景
Session 共享:常见于web集群中的Tomcat或者PHP中多web服务器session共享
消息队列:ELK的日志缓存、部分业务的订阅发布系统
计数器:访问排行榜、商品浏览数等和次数相关的数值统计场景
缓存:数据查询、电商网站商品信息、新闻内容
微博/微信社交场合:共同好友、点赞评论等