Redis介绍
Reids是一个高性能的key-value数据库,与其他很多key-value数据库的不同之处在于,Redis不仅支持简单的键值对类型的存储,还支持其他一系列丰富的数据存储结构,包括 strings、hashs、lists、sets、sorted sets等,并在这些数据结构类型上定义了一套强大的API。通过定义不同的存储结构,Redis可以很轻易地完成其他key-value数据库难以完成的任务,如排序、去重等。
使用Redis API
- 通过set方法,可以给对应的key设置;
- 通过get方法,可以获取对应key的值;
- 通过setex方法可以给key-value设置有效期;
- 通过mset方法,一次可以设置多个key-value对;
- 通过mget方法,可以一次获取多个key对应的value,这样的好处是,可以避免多次请求带来的网络开销,提高性能;
- 通过append方法,可以给已经存在的key对应的value后追加内容;
- Redis的hashs实际上是一个string类型的field和value的映射表,类似于Map,特别适合存储对象。相对于将每个对象序列化后存储,一个对象使用hashs存储将会占用更少的存储空间,并且能够更为方便地存取整个对象;
- 通过hset方法,可以给一个Hash存储结构添加key-value数据;
- 通过hmet方法,能够一次性设置多个值;避免多次网络操作的开销;
- 使用hget方法,能够取得一个Hash结构中某个key对应的value;
- 使用hmget方法,则可以一次性获取得多个key对应的value;
- 通过hgetall方法,可以将Hash存储对应的所有key-value一次性取出;
Redis的lists是一个链表结构,主要的功能是对元素的push和pop,以及获取某个范围内的值等。
- push和pop操作可以从链表的头部或者尾部插入、删除元素,这使得lists既可以作为栈使用,又可以作为队列使用,其中,操作的key可以理解为链表的名称
- 通过lpush和rpush方法,分别可以在lish的首部和尾部添加元素
- 使用lpop和rpop方法,可以在list的首部和尾部删除元素;
- 通过lrange方法,可以获取list注定区间的元素;
Redis的sets与数据结构的set相似,用来存储一个没有重复元素的集合,对集合的元素可以进行添加和删除的操作,并且鞥能够对所有元素进行枚举;
- sadd方法用来给set添加新的元素,而srem则可以元素进行删除,通过smembers方法,能够枚举出set中的所有元素;
- sorted sets是Redis
sets的一个升级版本,它在sets的基础之上增加了一个排序的属性,该属性在添加 元素时可以指定,sorted sets将根据该属性来进行排序,每次新元素增加后,sorted sets会重新对顺序进行调整。sorted sets不仅能够通过range正序对set取值,还能够通过rangeduiset进行逆序取值,极大地提高了set操作的灵活性
- 通过zadd方法来给sortec sets新增元素,在新增操作的同时,需要指定该元素排序的序号,以便进行排序;
- 使用zrange方法可以正序对set进行范围取值;
- 而通过zrevrange方法,则可以高效地逆序对set进行范围取值。