# redis-study **Repository Path**: lulihu/redis-study ## Basic Information - **Project Name**: redis-study - **Description**: redis 学习记录 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-09-27 - **Last Updated**: 2022-09-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # REDIS学习 ## 简介 Redis介绍 [点击这里](doc/REDIS.md) ## 功能 * [缓存](doc/CACHE.md) 示例代码目录:cc.shacocloud.redis.study.cache * [分布式互斥锁/令牌桶锁等](doc/LOCK.md) 示例代码目录:cc.shacocloud.redis.study.lock * [消息队列/延时队列](doc/MESSAGE_QUEUE.md) 示例代码目录:cc.shacocloud.redis.study.cache * 布隆过滤器 示例代码目录:cc.shacocloud.redis.study.bloom_filter 等等... ## 场景 * 数据缓存 * 实时用户统计 * 网关流量控制 * 实时数据排名 * 商品秒杀减库存 * 点赞数 等等... ## 版本 项目中消息队列是基于redis 5.0后的 stream 数据结构实现的,所以建议redis版本为5.0+ 项目中使用jedis客户端,以下为常用的三大客户端: ### 客户端 #### 概念 * Jedis:是Redis的Java实现客户端,提供了比较全面的Redis命令的支持, * Redisson:实现了分布式和可扩展的Java数据结构。 * Lettuce:高级Redis客户端,用于线程安全同步,异步和响应使用,支持集群,Sentinel,管道和编码器。 #### 优点 * Jedis:比较全面的提供了Redis的操作特性 * Redisson:促使使用者对Redis的关注分离,提供很多分布式相关操作服务,例如,分布式锁,分布式集合,延迟队列 * Lettuce:主要在一些分布式缓存框架上使用比较多 #### 可伸缩 * Jedis:使用阻塞的I/O,且其方法调用都是同步的,程序流需要等到sockets处理完I/O才能执行,不支持异步。 * Redisson:基于Netty框架的事件驱动的通信层,其方法调用是异步的。Redisson的API是线程安全的。 * Lettuce:基于Netty框架的事件驱动的通信层,其方法调用是异步的。Lettuce的API是线程安全的 #### 推荐 Redisson 和 Lettuce是一个可伸缩的线程安全的Redis客户端,多个线程可以共享同一个Redis连接,因为线程安全,所以会牺牲一部分的性能。 所以如果只是应用于缓存的话推荐使用 Jedis 具备更高的性能,但是不提供高级用法。如果有其他业务需要 Redisson 或 Lettuce 择一即可。 **附上:[Redis官网文档](https://redis.io/documentation)**