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 ...
随机推荐
- CSA Round #50 (Div. 2 only) Min Swaps(模拟)
传送门 题意 给出一个排列,定义\(value为\sum_{i=1}^{n-1}abs(f[i+1]-f[i])\) \(swap(a[i],a[j])(i≠j)为一次交换\),询问最少的交换次数使得 ...
- Codeforces627A【数学·有意思】
题意: 求有多少对( a , b ),a+b=s,a^b=x.(正整数) 思路: a+b=a^b+a&b*2; #include <iostream> #include <c ...
- POJ2446【建图建图】
题意: 给你一个n*n的矩阵,然后再给你几个坑,然后问你能否被1*2的长方形给覆盖: -弱知道了是二分匹配的做法,但是弱还是不会转化,又是在建图上GG了 分析: 从国际象棋的那个黑白色理解,这是一张二 ...
- python __builtins__ reversed类 (58)
58.'reversed', 返回一个反转的迭代器. class reversed(object) | reversed(sequence) -> reverse iterator over ...
- mac的日常使用总结
目录 有一个github的仓库:(强烈推荐) 不推荐的但是可以试试的一些链接: # 关于mac book的使用教程 github简直是一个宝藏,发现好多各种好玩的东西, 爱了爱了, 开源一定是未来, ...
- the little schemer 笔记(7)
第七章 Friends and Relations 这是一个set集合吗 (apple peaches apple plum) 不是,apple出现了不止一次 (set? lat) 是真还是假,其中l ...
- redis的多路复用io
redis基于reactor开发了自己的网路事件处理器,被称为文件事件处理器.使用io多路复用来同时监听多个套接字,来响应客户端的连接应答.命令请求.命令恢复.多路复用技术使得redis可以使用单进程 ...
- noip初赛
运算符 联结词名称 异或 ⊕ 非¬(-) 否定 与∧(·) 对应集合∩交集 对应按位与符号& 合取 或∨(+) 对应集合∪并集 对应按位或符号| 析取 条件→ ...
- Codeforces Round #319 (Div. 2)
水 A - Multiplication Table 不要想复杂,第一题就是纯暴力 代码: #include <cstdio> #include <algorithm> #in ...
- 模拟+贪心 URAL 1804 The Machinegunners in a Playoff
题目传送门 题意:A队和B队踢球,已知一场比赛A和B的得分情况,问A最小再得几分就能胜利还有最多能的几分还能给B队一丝翻盘的希望.规则如下: 1. 总分数相等的情况下,在客场得分高的获胜,如果还相等, ...