一:redis 简介
Redis 是一个开源的,基于Key-value存储,高性能,高扩展,高可用,可用于缓存,数据库,消息中间件的Nosql 数据库。
二:redis 特点
1:高性能,每秒约执行11万次的命令,约8万次写的命令。
2:使用redis集群支持高可用,高扩展,分区
3:支持多种数据结构:String, List, Hash, Set, Sorted Set, BitMap(位运算,用于统计,性能超高), hyperloglog(超级日志,比集合更节省内存),geospatial indexes(用于地图方面的数据结构)。
4:支持数据持久化,可被用于数据库(最多丢失一秒的数据),使用AOF和快照实现。
5:支持事物,原子性操作(多个key在多个Redis实例上不支持)
6:支持管道批量操作(多个key在多个Redis实例上不支持,在同一个实例支持)
7:支持Pub/Sub, 发布/订阅
8:List数据结构可用于消息中间件
9:支持脚本操作(lua,好像只能在同一实例中),原子性操作
10:支持过期时间,缓存
11:支持创建2级索引(没研究)
12:redisElearch redis索引
三:Redis Java 客户端API
1: Jedis (支持redis全部命令操作,事物,分区,管道,分区复杂操作)
2: Redisson(支持多种数据结构,一般用于分布式, 不支持事物,分区,管道,分区等操作) (https://redisson.org/)
3: Lettuce
四:Redis 使用 场景
1:Session 共享会话
2:排行榜(shorted set)和计数器(incr命令)
3 : pub/sub 发布/订阅模式
4:消息中间件,队列(list)
5:用于缓存,性能高
6:统计功能(bitmap)