1.异常快速:Redis数据库完全在内存中,因此处理速度非常快,每秒能执行约11万集合,每秒约81000+条记录。
2.数据持久化:Redis支持数据持久化,可以将内存中的数据存储到磁盘上,方便在宕机等突发情况下快速恢复。
3.数据一致性:所有Redis操作是原子的,这保证了如果两个客户端同时访问的Redis服务器将获得更新后的值。
4.支持丰富的数据类型:相比许多其他的键值对存储数据库,Redis拥有一套较为丰富的数据类型。支持存储string、list、hash、set、Sorted Set,Bitmap,HyperLoglogs。
5.多功能实用工具:Redis是一个多实用的工具,可以在多个用例如缓存,消息,队列使用(Redis原生支持发布/订阅),任何短暂的数据,应用程序,如Web应用程序会话,网页命中计数等。
Redis集群
![](https://img.haomeiwen.com/i9527232/91b732ba1c8a8c0c.jpg)
Redis数据结构
![](https://img.haomeiwen.com/i9527232/433864e486ebe90d.jpg)
String
![](https://img.haomeiwen.com/i9527232/183f06a08936e936.jpg)
![](https://img.haomeiwen.com/i9527232/eacf84a593150505.jpg)
SET anyLock unique_value NX PX 30000
Hash
![](https://img.haomeiwen.com/i9527232/ccde5dc4f93055df.jpg)
![](https://img.haomeiwen.com/i9527232/f55a41a57165b911.jpg)
![](https://img.haomeiwen.com/i9527232/ee885e1447013348.jpg)
![](https://img.haomeiwen.com/i9527232/097951f8517cc0cb.jpg)
List
![](https://img.haomeiwen.com/i9527232/e76acf55435be045.jpg)
![](https://img.haomeiwen.com/i9527232/9244625021a306a4.jpg)
![](https://img.haomeiwen.com/i9527232/3c66313b71a27fe9.jpg)
Set
![](https://img.haomeiwen.com/i9527232/59870974de139b28.jpg)
![](https://img.haomeiwen.com/i9527232/174a1141db2e1933.jpg)
![](https://img.haomeiwen.com/i9527232/89513b88fabcaccf.jpg)
![](https://img.haomeiwen.com/i9527232/f185567085cdd8ae.jpg)
![](https://img.haomeiwen.com/i9527232/bfa01d2beb051dcc.jpg)
zset
![](https://img.haomeiwen.com/i9527232/2bfd9f95a88c2bf2.jpg)
客户端
Jedis api 在线网址:http://tool.oschina.net/uploads/apidocs/redis/clients/jedis/Jedis.html
redisson 官网地址:https://redisson.org/
redisson git项目地址:https://github.com/redisson/redisson
lettuce 官网地址:https://lettuce.io/
lettuce git项目地址:https://github.com/lettuce-io/lettuce-core
概念:
Jedis:是Redis的Java实现客户端,提供了比较全面的Redis命令的支持,
Redisson:实现了分布式和可扩展的Java数据结构。
Lettuce:高级Redis客户端,用于线程安全同步,异步和响应使用,支持集群,Sentinel,管道和编码器。
优点:
Jedis:比较全面的提供了Redis的操作特性
Redisson:促使使用者对Redis的关注分离,提供很多分布式相关操作服务,例如,分布式锁,分布式集合,可通过Redis支持延迟队列
Lettuce:主要在一些分布式缓存框架上使用比较多
可伸缩:
Jedis:使用阻塞的I/O,且其方法调用都是同步的,程序流需要等到sockets处理完I/O才能执行,不支持异步。Jedis客户端实例不是线程安全的,所以需要通过连接池来使用Jedis。
Redisson:基于Netty框架的事件驱动的通信层,其方法调用是异步的。Redisson的API是线程安全的,所以可以操作单个Redisson连接来完成各种操作
Lettuce:基于Netty框架的事件驱动的通信层,其方法调用是异步的。Lettuce的API是线程安全的,所以可以操作单个Lettuce连接来完成各种操作
网友评论