Redis那些事(一) — Redis简介

      本人最近在学习Redis的使用和底层原理,有一些收获,所以希望通过写博客的形式来记录自己的学习过程,加深自己的理解,同时也方便以后查阅复习。目前打算先记录一些基本的使用方法和部分底层实现,其他的如果有用到我再贴上来。文章内容是我根据自己的理解和参考网上的资料总结的,如果有错误的地方,就麻烦各位大佬批评指正哈。

     这是第一篇,我们就先来了解一下Redis的基础知识吧!

1. 什么是Redis ?

     简单来说,Redis是一个基于C/S模式的Key-Value型的内存数据库,所有数据都存储在内存中,因此读写速度非常快,同时也支持数据持久化,可用于缓存、事件发布或订阅、高速队列等场景。Redis提供了多种高级语言的API ,如Java, C,C++,PHP等,可以非常方便地集成到其他大型模块中。另外,Redis提供了多种类型的数据结构给用户,如字符串,列表,哈希,集合,有序集合等,大大提高了Redis的可用性和性能。

2. 使用Redis有什么好处?

   (1) 读写速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1);

   (2) 支持丰富的数据类型,如 list, string, set, sorted set 等,方便用户使用,提高数据存储和数据读写的效率;

   (3) 支持事务,即原子性操作,Redis中的事务(transaction)是一组命令的集合。事务同命令一样都是Redis最小的执行单位,一个事务中     的命令要么都执行,要么都不执行。

   (4) 特性丰富,支持多种应用场景,可以使用RDB或者AOF进行持久化;

3. 相比memcached,Redis有哪些优势?

  (1) memcached 只支持字符串类型的数据结构,而Redis支持多种高效方便的数据结构,方便使用;

  (2) 一般来说,Redis的读写速度会比memcached快一些,性能更好;

  (3) Redis 支持多种方式持久化,可以定期将内存中的数据写到磁盘,重启Redis 可以恢复原来的数据,而memcached不支持持久化,一旦系统掉电,数据就丢失了;

4. Redis的回收策略

 Redis 支持多种回收策略(数据淘汰策略),用户可以根据需要进行相应的配置,主要的回收策略有以下几种:

  (1) volatile-lru:从已设置过期时间的数据集中挑选最近最少使用的数据淘汰;

  (2) volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰;

  (3) volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰;

  (4) allkeys-lru:从所有数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰;

  (5) allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰;

  (6) no-enviction(驱逐):禁止驱逐数据

   参考资料

   1. redis总结:https://blog.csdn.net/hjm4702192/article/details/80518856

   2. https://blog.csdn.net/qq_29108585/article/details/63251491

  

猜你喜欢

转载自www.cnblogs.com/chenwx-jay/p/redis.html