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
Redis那些事(一) — Redis简介的更多相关文章
- Redis API与常用数据类型简介
Redis API与常用数据类型简介 一.Redis API For .Net 首先,不得不说Redis官方提供了众多的API开发包,但是目前Redis官方版本不支持.Net直接进行连接,需要使用一些 ...
- Redis安装和主要功能简介
Redis安装和主要功能简介 Redis(https://redis.io/), 是一个内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 安装Redis 我很少在开发机中直接装各种数 ...
- redis学习笔记之redis简介
redis简介 Redis是一个开源的,高性能的,基于键值对的缓存与存储系统,通过设置各种键值数据类型来适应不同场景下的缓存与存储需求.同事redis的诸多高层级功能使其可以胜任消息队列,任务队列等不 ...
- Redis 安装,配置,简介,数据类型(一)
Redis 安装 Window 下安装 下载地址:https://github.com/MSOpenTech/redis/releases. Redis 支持 32 位和 64 位.这个需要根据你 ...
- Redis和Memcache和MongoDB简介及区别分析(整理)
Redis和Memcache 一.Redis简介 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年 ...
- Redis系列(一):Redis简介及环境安装
提到Redis,大家肯定都听过,并且应该都在项目中或多或少的使用过,也许你觉得Redis用起来挺简单的呀,但如果有人问你下面的几个问题(比如同事或者面试官),你能回答的上来吗? 什么是Redis? R ...
- Redis 详解 (一) redis的简介和安装
目录 1.Redis 的简介 2.Redis 下载 3.安装环境 4.编译安装 5.启动Redis 6.关闭Redis 7.注意事项 工作中一直在用 Redis,但是一直没有进行系统的总结,这个系列的 ...
- [原]分享一下我和MongoDB与Redis那些事
缘起:来自于我在近期一个项目上遇到的问题,在Segmentfault上发表了提问 知识背景: 对不是很熟悉MongoDB和Redis的同学做一下介绍. 1.MongoDB数组查询:MongoDB自带L ...
- NoSQL初探之人人都爱Redis:(2)Redis API与常用数据类型简介
一.Redis API For .Net 首先,不得不说Redis官方提供了众多的API开发包,但是目前Redis官方版本不支持.Net直接进行连接,需要使用一些第三方的开源类库.目前最流行的就是Se ...
随机推荐
- 网易蜂巢(云计算基础服务)MongoDB服务重磅来袭
此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. MongoDB是目前最为流行的NoSQL数据库,在2017年1月新鲜出炉的数据库权威排行榜上,MongoDB ...
- 两行代码搞定网站gzip压缩
网站使用gzip压缩的好处就不用多说了吧,自行脑补,来说一下如何使用nodejs实现gzip压缩,只需要两行代码,so ease. 通过nodejs实现gzip 需要用到的模块 compression ...
- POJ1861 kruskal.
#include <iostream> #include <stdio.h> #include <string.h> #include <stack> ...
- python __builtins__ reversed类 (58)
58.'reversed', 返回一个反转的迭代器. class reversed(object) | reversed(sequence) -> reverse iterator over ...
- IT兄弟连 JavaWeb教程 HTTP协议
超文本传输协议(HTTP,Hypertext Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的Web文件都必须遵守这个标准.设计HTTP最初的目的是为了提供一种发布和接 ...
- maven在window下的环境变量配置
配置maven环境变量cmd控制台提示:mvn不是内部或外部命令,也不是可运行的程序或批处理文件 首先maven环境变量: 变量名:MAVEN_HOME 变量值:E:\apache-maven-3.2 ...
- MyEclipse中安装SVN插件的最有效的方法
(1)下载svn插件:http://subclipse.tigris.org/files/documents/906/49209/site-1.8.8.zip (2)解压svn包,找到其中的两个文件夹 ...
- Luogu P2170选学霸【并查集+背包】By cellur925
题目传送门 开始看到本题完全认为就是个彻头彻尾的并查集,只要把实力相当的人都并到一个集合中,最后再找一共有多少联通块即可. 后来发现这是大错特错的qwq.因为选了一个集合中的某人,那这个集合中所有人就 ...
- TensorFlow多线程输入数据处理框架(三)——组合训练数据
参考书 <TensorFlow:实战Google深度学习框架>(第2版) 通过TensorFlow提供的tf.train.batch和tf.train.shuffle_batch函数来将单 ...
- RAID基础
磁盘类型 类型 IDE Integrated Drive Electronics SATA Srial ATA SCSI Small Computer System Interface FC Fibe ...