背景
随着web2.0的兴起 大量的Nosql层出不穷。其中的佼佼者必然会包含Redis
那么对于Redis的基本使用大家还是要做到了然与心
Nosql
nosql的兴起适合和sql水火不容,笔者第一次听说Nosql的时候第一脑子里就是不要sql了~以后数据存储怎么办?
莫非都用这个新的组件?
其实Nosql不是Not sql的意思 而是Not Only sql
换言之 不仅仅是sql 因此千万别和憋着犯同样的错误,以为以后就不用MysqL或者Oracle了
出于对于系统的性能,可用性等的考量 大量的系统开始使用redis等数据库
事实上包括银行等对于数据要求很高的机构也已经在使用Redis了
Redis
Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
看到Pivotal眼熟的开发可能就知道这是Spring的母公司 因此spring对于redis的支持也是不错的
<!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-redis --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>XXX.RELEASE</version> </dependency>
redis如此高的市场占有率在于其高性能多数据结构的支持等等。并且支持我们最常见的需求 过期!
我们先来了解一下redis的常见的数据结构
String
这是最常见的数据结构 通过设置一个key和value来完成
Hash
hash是一个string类型的field和value的映射表,hash特别适合用于存储对象
List
列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
Set
Set是string类型的无序集合。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
Zset
zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数(score)却可以重复。
Geo
这个是redis 3新提供的关于地理位置的api可以存入经纬度等用来计算距离等等
我们最常用的是 String Hash List和 Set
可以如上参考我们系统中使用redis的一些场景
一些常用的命令可以参考