Redis介绍

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进行范围取值。

相较于传统的关系型数据库 ,Redis有更好的读、写吞吐能力,能哦故支撑更高的并发数。而相较于其他的key-value类型的数据库,Redis能够提供更为丰富的数据类型的支持,能够更灵活 地满足业务需求。Redos能够高效率地实现诸如排序取topN、访问计数器、队列系统、数据排重等业务需求,并且通过将服务器设置为cache-only,还能够提供高性能的缓存。相较于memcache来说,在性能差别不大的情况下,它能够支持更为丰富的数据类型。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章