redis

MongoDB / ElasticSearch: 文档数据库一般用类JSON格式存储数据,存储的内容是文档型的

HBase: 按列存储数据的。最大特点是方便存储结构化和半结构化数据,方便做数据压缩,针对某一列或某几列的查询有非常大的I/O优势,适合于批量数据处理和即时查询。

Redis: 通过key快速查询到其value,有基于内存和基于磁盘两种实现方案。

import redis
conn = redis.Redis(host='127.0.0.1', port=6379, password="", db=3, decode_respondes=True)
conn.hset('user', 'name', 'hao')
conn.hget('user', 'name')
client.keys('*')
client.hgetall('user')

Redis还支持键过期、地理信息运算、发布订阅、事务、管道、Lua脚本扩展等功能——高速缓存和消息队列。

  • Redis的读写性能极高,并且有丰富的特性(发布/订阅、事务、通知等)。
  • Redis支持数据的持久化(RDB和AOF两种方式),可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  • Redis支持多种数据类型,包括:string、hash、list、set,zset、bitmap、hyperloglog等。
  • Redis支持主从复制实现读写分离)以及哨兵模式(监控master是否宕机并自动调整配置)。
  • Redis支持分布式集群,可以很容易的通过水平扩展来提升系统的整体性能。
  • Redis基于TCP提供的可靠传输服务进行通信,很多编程语言都提供了Redis客户端支持。

Redis的应用场景

  1. 高速缓存 - 将不常变化但又经常被访问的热点数据放到Redis数据库中,可以大大降低关系型数据库的压力,从而提升系统的响应性能。
  2. 排行榜 - 很多网站都有排行榜功能,利用Redis中的列表和有序集合可以非常方便的构造各种排行榜系统。
  3. 商品秒杀/投票点赞 - Redis提供了对计数操作的支持,网站上常见的秒杀、点赞等功能都可以利用Redis的计数器通过+1或-1的操作来实现,从而避免了使用关系型数据的update操作。
  4. 分布式锁 - 利用Redis可以跨多台服务器实现分布式锁(类似于线程锁,但是能够被多台机器上的多个线程或进程共享)的功能,用于实现一个阻塞式操作。
  5. 消息队列 - 消息队列和高速缓存一样,是一个大型网站不可缺少的基础服务,可以实现业务解耦和非实时业务削峰等特性,这些我们都会在后面的项目中为大家展示。

用 Redis 连接池的原因

Redis 是基于内存的数据库,使用之前需要建立连接,建立断开连接需要消耗大量的时间。使用连接池可实现在客户端建立多个连接,需要时从连接池拿过来,用完再放回去。这样就节省了建立、断开连接所消耗的时间。

原文地址:https://www.cnblogs.com/bsszds930/p/12912052.html