最近感觉自己像是又回到了起点,知识层面上落人太多,尤其是去年早些时候几乎啥也没干成,觉得什么也不会了,只能再次从零开始,所以决定再喝两个疗程的巩固巩固。

话不多说,我们先来看看 Redis 官方是怎么解释 Redis 的:

Redis是一个开源(BSD许可),内存数据结构存储,用作数据库,缓存和消息代理。它支持数据结构,如字符串,散列,列表,集合,带有范围查询的排序集,位图,超级日志,具有半径查询和流的地理空间索引。Redis具有内置复制,Lua脚本,LRU驱逐,事务和不同级别的磁盘持久性,并通过Redis Sentinel提供高可用性并使用Redis Cluster自动分区。

Redis 首先强调的是内存数据结构存储,先说一下我认为国内最 NB 的网站 12306 来说吧,在春运期间12306 在抢票开始时可能会处理数以千万计用户的访问请求,每次都去请求数据库,会对服务器造成相当大的压力,如果我们将一些常用的数据放到内存当中缓存起来,用户再请求数据时先去内存当中去拿,没有之后再去数据库拿就可以缓解大量数据访问时给数据库带来的压力。

Redis 同时是一种非关系型数据库,而非关系向数据库严格意义上来说不是数据库,这个咱们就不深究了。

Redis 的安装流程我就不说了,大家根据自己电脑的配置和系统自行搜索。

打字太多,直接上图吧。

当我们安装完成后再终端输入 ping 时会返回 PONG,说明 Redis 已经安装完成了,默认端口为 6379,我们可以追踪源码去更改端口及向物理存储中存储一次的间隔时间等配置,这里就不详说了。

上图可以看出 Redis 在存储数据时直接进行读写操作就可以了,比起关系型数据库来说简单粗暴,我们也可以在创建数据的时候指定销毁的时间,如上述 test2 设置了 30s 后进行数据销毁。同时 Redis 支持在数据中对 String 类型的数据进行追加操作等。

上图我们可以看出 Redis 是以键值对的形式进行数据存储的,同时支持正则查询,删除数据,检查数据是否存在,对已有数据设置销毁时间等。

上图为 Redis 存储 hash 型数据,其实就是 JSON 形式的数据,可以根据需求获取所存储数据的内容。

上图为 Redis 存储 list 型数据,即数组类型数据,上图 test5 示例为从左侧将 ‘123’,‘456’,‘789’ 依次推入数组并从左侧依次拿出,test6 示例为从右侧将 ’123‘,’456‘,’789‘ 依次推入数组并从左侧依次拿出,list 型数据同时也支持从右侧依次拿出,即 rpop,在此就不写了。

上图为 set 型数据,也是一种数组类型数据,但是和上面的 list 型不同的是不能有重复的值,如上图我们添加了两个 ’123‘ 数据,但是输出只有一个,且 set 为无序排列的,如我们又添加了一个 ’taotao‘ ,并不是向后添加,且之前的排列顺序也有所不同。

上图为 set 型数据之间求交集,差集,合集,从求合集也可以看出 set 型数据是不允许有相同数据的,会将相同的只保留一份。

上面两个图为 Redis 消息的发布订阅模式,一个负责发布消息,一个负责接收消息,发布者只有一个,订阅者可以有好多个,当发布者发布消息时,订阅者能实时获取发布者发布的消息,不需要主动去请求。

Redis 还有主从关系,这就很好地解决了一个服务器挂掉的时候导致无法获取数据的尴尬,在主服务器挂掉时可以启动备用服务器。

本人本来想在电脑上利用虚拟机构建一台电脑做从机来演示,奈何才疏学浅桥接一直连不通,所以就在搭建的虚拟机中以 Windows 系统的不同端口来模拟不同的两台电脑。

先在下载安装的 Redis 文件中复制出一个 redis.windows-service6380.conf 文件,然后打开进行相关配置。

将端口变为 6380,输出日志变为 server6380_log.txt

在终端输入以上内容启动 6380 端口的 Redis 服务。这时 Redis 下载安装文件夹里会多一个 server6380_log 的输出日志文件,这表明我们已经成功启动了 6380 端口的 Redis 服务。

上图为我们开了两个 Redis 服务,Redis 默认的 6379 端口为主机,我们配置的 6380 端口为从机,在 6380 的终端输入 SLAVEOF 127.0.0.1 6379 表示 6380 以 6379 为主机。我们在 6379 主机端口添加 test : '123' 的数据,在 6380 从机中获取 test 数据,结果可以输出,当我们在 6380 从机中添加 test1 : 456 的数据,结果报错,报错为 不能写入只能读取,说明从机只有读没有写的权限,这样在主机挂掉时启动从机用于数据的读取存储。

关于 Redis 的基本内容本人就说到这里了,再深入的只有自己去学习了,本人也不会,只会一些皮毛。

另附 Redis 的命令行语法链接:http://redis.cn/commands.html,上面有全部的 Redis 命令行语法。

Redis 小记的更多相关文章

  1. 「Nosql」Redis小记-内存解析&内存消耗篇

    *博客搬家:初版发布于 2017/08/12 18:32    原博客地址:https://my.oschina.net/sunqinwen/blog/1507171 Redis内存消耗分析 注:本文 ...

  2. Redis小记(三)

    1.复制 通过slaveof命令或设置slaveof选项,实现一个服务器去复制另一个服务器,被复制的是主服务器,执行复制的是从服务器,复制过程中主从双方数据库保持数据一致 2.8版本以前,可分为初次复 ...

  3. Redis小记(二)

    1.redis数据库 redis数据库属于内存数据库,若不将数据存到磁盘中,服务器进程退出,数据也会消失 redis所有数据库都保存在redisServer结构的db数组中,db数组的每一项都是一个r ...

  4. Redis小记(一)

    1.redis的数据结构 (1)动态字符串(SDS) redis自身构建了一个简单动态字符串的抽象类型,SDS,在redis里,包含字符串的键值对在底层都是由SDS来实现的. 除了用来保存数据库的字符 ...

  5. MongoDB 小记

    之前本人说过一款非关系型数据库的代表 Redis 的 < Redis 小记 >文章,觉得意犹未尽,今天就来介绍一款数据库 MongoDB ,先来看一下 MongoDB是一款基于分布式文件存 ...

  6. Redis Sentinel配置小记

    Sentinel是一个管理多个redis实例的工具,它可以实现对redis的监控.通知.自动故障转移.sentinel不断的检测redis实例是否可以正常工作,通过API向其他程序报告redis的状态 ...

  7. Docker 小记 — MySQL 与 Redis 配置

    前言 本篇随笔是继 "Docker Engine" 与 "Compose & Swarm" 之后的一个实例补充,初衷是记录测试环境中的一次 MySQL ...

  8. Redis 学习小记

    由于是学习笔记,我就不来各种啰嗦,介绍这个介绍那个,也不上交给国家,或者各种对比,相信如果你真心用 redis 的话,就不会去跟 MySql,Memcached,MongoDB 等做对比了. 我原先用 ...

  9. 小记redis持久化的机制

    刚学redis,就经常看到两种持久化机制在眼头晃,RDB和AOF,然而当时学的还知道这两东西是啥玩意,过段时间又忘了,中文记忆这两种概念总感觉有些别扭.今心血来潮翻看redis的配置文件,豁然开朗,仿 ...

随机推荐

  1. java.exe进程来源排查录

    解决后的一个小结:此处是一个tomcat端口,这种情况下,可以先在浏览器访问下看看效果,就可以快速定位 又发现一个简单的办法: 下面的定位过程,适用于各种场合 无意中发现有个进程开了好多端口,很奇怪 ...

  2. Android开发环境的配置2017.05.27

    关于配置Android开发环境请参考此链接:http://blog.chinaunix.net/uid-25434387-id-461933.html

  3. 你不知道的JavaScript--Item25 创建对象(类)的8种方法总结

    1. 使用Object构造函数来创建一个对象 下面代码创建了一个person对象,并用两种方式打印出了Name的属性值. var person = new Object(); person.name= ...

  4. eclipse工具的使用心得

    一.eclipse工具的使用 eclipse是一个开源的IDE,进行javaEE开发一般使用myeclipse插件比较方便 1. java代码的位置 1)选择工作空间workspace 选择一个文件夹 ...

  5. Firefox driver 那些事~

    1. selenium 3.x开始,webdriver/firefox/webdriver.py的init中,executable_path="geckodriver":而2.x是 ...

  6. 第三方库API接口

    第三方库API接口 InfluxDB提供了各种语言的Http API接口的封装.具体可以看这里: https://docs.influxdata.com/influxdb/v0.10/clients/ ...

  7. bzoj 3629 聪明的燕姿 约数和+dfs

    考试只筛到了30分,正解dfs...... 对于任意N=P1^a1*P2^a2*......*Pn^an, F(N)=(P1^0+P1^1+...+P1^a1)(P2^0+P2^1+...+P2^a2 ...

  8. BZOJ_2788_[Poi2012]Festival_差分约束+tarjan+floyed

    BZOJ_2788_[Poi2012]Festival_差分约束+tarjan+floyed Description 有n个正整数X1,X2,...,Xn,再给出m1+m2个限制条件,限制分为两类: ...

  9. 【Unity游戏开发】AssetBundle杂记--AssetBundle的二三事

    一.简介 马三在公司大部分时间做的都是游戏业务逻辑和编辑器工具等相关工作,因此对Unity AssetBundle这块的知识点并不是很熟悉,自己也是有打算想了解并熟悉一下AssetBundle,掌握一 ...

  10. [Inside HotSpot] C1编译器HIR的构造

    1. 简介 这篇文章可以说是Christian Wimmer硕士论文Linear Scan Register Allocation for the Java HotSpot™ Client Compi ...