背景

技术的更新迭代,是程序员最最最头大的事,总是在每个网络角落中有感慨声:学不动啦;

其实新技术并不是凭空而出,而是随着业务推进、数据驱动、技术积累促使开发者的不断探索和实践,最终横空出世--“新技术”;

对于项目而言,并不是一开始就能把所有的需求、架构和性能都做到极致,而是通过一次次的迭代;最经典的的案例就是淘宝网的演变,从最初的单体程序到现在人人都效仿的大项目,其经历了无数次的变迁和优化(“淘宝技术这十年”记录了一次次的优化过程);

由于互联网的高并发、高可扩、高性能需求(所谓的互联网三高),促使了很多非关系型数据应用和发展,如Key-Value数据库(Redis、Oracle BDB等)、列存储数据库(HBase等)、文档型数据库(MongoDb等)、图形数据库(Infinite Graph、Neo4J等),各种非关系数据库都在各自领域扮演极其重要的角色; 其中Redis成为Web2.0数据缓存的利器,同时也成为小伙伴们必知必会的技能。

初识Redis

什么是Redis?

Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API

百度百科

简单的理解就是一个Key-Value数据库,即字典形式存储,归类于NoSql(通常理解为“Not Only SQL”)数据库;官网地址如下:

英文版:https://redis.io/

中文版:http://www.redis.cn/

为什么要用Redis?

  • 开源:除了使用没障碍,开源会促进其发展;
  • 快:操作数据快,性能高;
  • 扩展性好:根据需要很容易进行扩展,集群、主从复制等;
  • 比较活跃:文档详细,版本维护及时,社区讨论都很活跃;

默认端口6379的背后故事

6379在是手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字;Redis 作者 Antirez 早年看电视节目,觉得 Merz 在节目中的一些话愚蠢可笑,Antirez 喜欢造“梗”用于平时和朋友们交流,于是造了一个词 "MERZ",形容愚蠢,所以当要为Redis选择一个数字端口的时候就使用6379(这个缘由不必抬杠,当做了解即可,毕竟不影响我们学习和使用)。

运行环境和版本

官方推荐在Linux环境中进行部署使用。

以上大概意思就是推荐使用Linux,对于Windows没有提供官方支持;平时使用的Windows版本是微软提供的,而且已经好久没维护。

Redis 使用标准版本标记进行版本控制:major.minor.patchlevel(主版本.****次版本.优化版本)。偶数的版本号表示稳定的版本, 例如 1.2,2.0,2.2,2.4,2.6,2.8,奇数的版本号用来表示非标准版本,例如2.9.x是非稳定版本,它的稳定版本是3.0。

整理大概内容

概述->数据类型及应用场景->事务->配置文件详解->持久化->发布订阅->主从复制->哨兵模式->Lua脚本操作->布隆过滤器->其他扩展(缓存雪崩、穿透、数据一致性等)

Windows安装

噗,说好的推荐Linux中运行的,好吧,我承认,这里要偷个懒,为了方便,接下来的学习打算在Windows进行,后续还是会切换到Linux的。当然,实际部署还是推荐Linux。

  1. 下载

    windows下载地址:https://github.com/microsoftarchive/redis/releases/tag/win-3.2.100

  2. 拷到自己想放的文件夹,然后解压;

  3. 先打开redis-server.exe,再打开redis-cli.exe,测试是否连接成功

安装如此简单,知道我偷懒的原因了吧,哈哈哈~~~Linux环境的安装后续再补上。

最后

对于Redis的使用,存在以下公认现象:

  • 所有开发者中,80%会用,20%还没用过;
  • 在使用过程中,80%只会string,20%应用熟练;
  • 在熟练应用的开发者中,80%只会常规操作,20%高级应用;

当然,每个人都在进步,关注“Code综艺圈”一起学习,我们一起努力成为最后一个20%的人。

一个被程序搞丑的帅小伙,关注"Code综艺圈",识别关注跟我一起学~~~

撸文不易,莫要白瞟,三连走起~~~~

跟我一起学Redis之Redis概述的更多相关文章

  1. Redis数据库 01概述| 五大数据类型

    1.NoSQL数据库简介 解决应用服务器的CPU和内存压力:解决数据库服务的IO压力: ----->>> ① session存在缓存数据库(完全在内存里),速度快且数据结构简单: 打 ...

  2. 峰Redis学习(9)Redis 集群(概述)

    第一节:Redis 集群概述 redis cluster是去中心化,去中间件的,也就是说,集群中的每个节点都是平等的关系,都是对等的,每个节点都保存各自的数据和整个集群的状态.每个节点都和其他所有节点 ...

  3. 跟我一起学Redis之Redis配置文件啃了一遍之后,从尴尬变得有底气了

    前言 秋高气爽的一天,那时候年轻帅气的我正在参照着搜索引擎写代码,迷之微笑般的敲着键盘(又从搜索引擎上找到代码案例啦),突然领导在小隔间里传来了呼唤声,然后有了以下场景: 领导:小Z,你过来一下: 当 ...

  4. redis 一般性使用概述

    最近一段时间与redis接触比较频繁.发现有些东西还是工作中经常会用到的,自己也花了点时间巩固下.本篇文章主要是以总结性的方式梳理,因为redis的主题很大,任何一个技术点展开都是几篇文章的量.也可以 ...

  5. Redis实战——redis主从备份和哨兵模式实践

    借鉴:http://redis.majunwei.com/topics/sentinel.html     https://blog.csdn.net/u011784767/article/detai ...

  6. 【redis】redis基础命令学习集合

    写在前面 Redis是一个高速的内存数据库,它的应用十分广泛,可以说是服务端必学必精的东西.然而,学以致用,无用则无为.学了的东西必须反复的去用,去实践,方能有真知.这篇文章记录了我在redis学习过 ...

  7. redis基础:redis下载安装与配置,redis数据类型使用,redis常用指令,jedis使用,RDB和AOF持久化

    知识点梳理 课堂讲义 课程计划 1. REDIS 入 门 (了解) (操作)   2. 数据类型 (重点) (操作) (理解) 3. 常用指令   (操作)   4. Jedis (重点) (操作) ...

  8. Java Spring mvc 操作 Redis 及 Redis 集群

    本文原创,转载请注明:http://www.cnblogs.com/fengzheng/p/5941953.html 关于 Redis 集群搭建可以参考我的另一篇文章 Redis集群搭建与简单使用 R ...

  9. CentOS下安装Redis及Redis的PHP扩展

    1.安装Redis 1.1 如果没有安装wget,安装wget yum install wget 1.2 在http://redis.io/download页面查看redis版本,并下载安装 wget ...

  10. redis/php redis扩展 安装

    作者:silenceper 日期:2013-10-03 原文地址: http://silenceper.com/archives/952.html 我是在CentOS 6.3 中进行的. 使用到的软件 ...

随机推荐

  1. K8s 1.18.6版本基于 ingress-nginx 实现金丝雀发布(灰度发布)

    K8s 1.18.6版本基于 ingress-nginx 实现金丝雀发布(灰度发布) 环境 软件 版本 kubernetes v1.18.6 nginx-ingress-controller 0.32 ...

  2. mysql索引类型:FULLTEXT、NORMAL、SPATIAL、UNIQUE的区别

    1. Normal 普通索引 2. Unique 唯一索引 3. Full Text 全文索引 4. SPATIAL 空间索引 5. btree索引和hash索引的区别 6. 在实际操作过程中,应该选 ...

  3. Public-Key Cryptosystems Based on Composite Degree Residuosity Classes

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 以下是对本文关键部分的摘抄翻译,详情请参见原文. 论文未全部翻译 Abstract. 本文研究了一个新的计算问题,即合数剩余阶问题(Com ...

  4. Mysql 如何实现全文检索,关键词跑分

    一.前言 今天一个同事问我,如何使用 Mysql 实现类似于 ElasticSearch 的全文检索功能,并且对检索关键词跑分?我当时脑子里立马产生了疑问?为啥不直接用es呢?简单好用还贼快.但是听他 ...

  5. vs _ 用户代码片段 _ html模板

    自定义模板:首选项 -> 用户代码片段 - >(如果没有自己创个)html.json t : 表示缩进 n:表示换行 ----------------------------------- ...

  6. Asp.Net Core Swagger 接口分组(支持接口一对多暴露)

    开始之前,先介绍下swagger常用方法. services.AddSwaggerGen    //添加swagger中间件 c.SwaggerDoc  //配置swagger文档,也就是右上角的下拉 ...

  7. 人到中年的程序员,请提前准备好 Plan B

    中年程序员的生存现状已经是老生常谈的话题了,有多老呢?十年前,就有一位名叫"johnfx"的程序员谈过这个话题,并且专门为此写了一篇文章.随着中年程序员生存现状的话题再次成为热点, ...

  8. 【Android】时间选择器,选择日期DatePicker 简单详解demo及教程

    作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 新浪微博:http://weibo.com/mcxiaobing 首先给大家看一下我们今天这个最终实现 ...

  9. org.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM][lL]" is not allowed(转)

    xml文件不能被正确解析/The processing instruction target matching "[xX][mM][lL]" is not allowed. The ...

  10. 前后端API交互如何保证数据安全性?

    前言 前后端分离的开发方式,我们以接口为标准来进行推动,定义好接口,各自开发自己的功能,最后进行联调整合.无论是开发原生的APP还是webapp还是PC端的软件,只要是前后端分离的模式,就避免不了调用 ...