本人最近在学习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

转载于:https://www.cnblogs.com/chenwx-jay/p/redis.html

Redis那些事(一) — Redis简介相关推荐

  1. Redis入门四:Redis基本配置一:redis常用配置简介;后台运行(daemonize);

    本篇博客内容: (1)在[Redis入门二:Linux系统下安装Redis:]中已将安装了redis,并且启动了redis了.其实,redis是有很多配置项的:本篇博客主要介绍redis各种配置项中的 ...

  2. Redis的安装以及基本操作简介

    所有与大数据相关的服务都必须在linux上运行,redis提供了linux和windows的版本,但是为了系统更加稳定,推荐使用linux作为服务器. Linux版redis的安装,这里选择cento ...

  3. (转)Redis研究(一)—简介

    http://blog.csdn.net/wtyvhreal/article/details/41855327 Redis是一个开源的高性能键值对数据库.它通过提供多种键值数据类型来适应不同场景下的存 ...

  4. Redis的Java客户端Lettuce简介

    环境 操作系统:Ubuntu 20.04 Redis:6.2.6 开发工具:IntelliJ IDEA 2022.1 (Community Edition) Lettuce的官网( https://l ...

  5. Redis学习(一)之redis简介

    文章目录 一.NoSQL 1.什么是NoSQL 2.NoSQL四大分类 二.Redis 1.什么是Redis 2.redis-benchmark 性能测试工具 3.Redis的五大数据类型和三种特殊数 ...

  6. 《Redis篇》01.Redis看这一篇就够了

    陈老老老板 说明:在整体的复习一遍知识,边复习边总结,基础真的重要,需要注意的地方都标红了,还有资源的分享. 一起加油.本篇有对Redis知识的阐述,和使用IDEA操作Redis 视频链接:黑马Red ...

  7. redis提高oracle性能,redis性能分析与优化建议

    首先,并不是说redis是内存应用就完全没性能问题,用的不好,还是会出现各种状况,例如RDB频繁,碎片太多等. 性能分析 info信息: 在redis-cli进入登录界面后,输入info all,或者 ...

  8. redis特点单进程单线程高性能服务器,Redis为什么是单线程?Redis又为什么这么快!...

    Java相关的面试都会问到缓存的问题,基础一点的会问到什么是"二八定律".什么是"热数据和冷数据",复杂一点的会问到缓存雪崩.缓存穿透.缓存预热.缓存更新.缓存 ...

  9. Redis学习笔记之Redis单机,伪集群,Sentinel主从复制的安装和配置

    0x00 Redis简介 Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure server). Redis的键值 ...

最新文章

  1. 边缘数据中心2024年市场规模将超过130亿美元
  2. 使用递归的方式实现简易的二分法
  3. 编程语言的“别样”编年史
  4. 血雨腥风43载,苹果帝国背后的5个男人
  5. linux编写周期性计划任务,linux任务计划及周期性任务计划
  6. java运行python脚本_用Java运行Python脚本
  7. c语言中专业英文词汇的意思,c语言常见专业英语词汇
  8. 【科学文献计量】关键词的挖掘与可视化
  9. vuepress-theme-reco主题相关配置 + gitee pages 部署
  10. tensorflow官方Blog-使用Keras Tuner超参数优化框架 进行超参数调整 ,具体实现版本
  11. 机器学习(八)SVM支持向量机
  12. 【编程入门】开源记事本(安卓版)
  13. 列出html表单元素及语法,HTML表单(示例代码)
  14. 2021年全球与中国农用拖拉机变速器行业市场规模及发展前景分析
  15. 心跳信号分类 ---参数调整
  16. dubbo源码编译和打包
  17. mac os x 触摸板点击无效
  18. 作为第一期iOS基础班学生,MJ广东开校之我见(原稿)
  19. 电商类app商品详情参数选择联动的实现
  20. Linux中glob()、globfree()、getcwd()函数

热门文章

  1. [js高手之路]javascript腾讯面试题学习封装一个简易的异步队列
  2. Java并发编程之线程安全
  3. zabbix-2.0.8日常巡检-检测项目状态
  4. HDSF主要节点解说(二)工作原理
  5. 葡萄城发布新版ActiveReports 9报表控件和报表服务器
  6. I/O复用模型之select学习
  7. linux 从入参获取函数名字,C++ 函数名作为参数传递给另一个函数
  8. Python机器学习:多项式回归与模型泛化007偏差方差平衡
  9. abb工业机器人教程 zxw_【ABB工业机器人应用】YUMI-软管装配
  10. 计算机桌面图标教案,计算机教案模板