Redis 小记

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

话不多说,我们先来看看 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 命令行语法。

原文地址:https://www.cnblogs.com/weijiutao/p/10608493.html

时间: 2024-10-29 04:40:12

Redis 小记的相关文章

redis小记

Redis是一个key-value存储系统.和 Memcached类似,但是解决了断电后数据完全丢失的情况(因为它还可以支持持久化),Redis 是一款依据BSD开源协议发行的高性能Key-Value存储系统(cache and store).它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(hashes), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型.这些数据类型都支持push/pop.add/remove及取交集并

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

*博客搬家:初版发布于 2017/08/12 18:32    原博客地址:https://my.oschina.net/sunqinwen/blog/1507171 Redis内存消耗分析 注:本文默认读者已初步学会使用redis了. 首先我们通过info命令查看相关指标,其中几个memory的重要指标整理出来如下: 属性 解释 used_memory redis内部存储的所有数据的内存总占用量(自身内存+对象内存+缓冲内存) used_memory_ress redis进程占用的总物理内存

Linux安装Redis小记

1.下载安装包 访问https://redis.io/download 到官网进行下载. 2.安装 2.1解压安装文件 tar -zxf redis-5.0.7.tar.gz 2.2移动文件到安装目录 mv redis-5.0.7 /usr/local/redis 2.3进入目录 cd /usr/local/redis 2.4编译.安装 make make install 2.5统一文件管理,创建etc bin文件夹 mkdir etc mkdir bin 2.6移动配置文件 2.7执行启动re

redis相关小记

1,安装: wget && tar zxvf && make make命令执行完成后,会在当前目录下生成本个可执行文件,分别是redis-server.redis-cli.redis-benchmark.redis-stat,它们的作用如下: redis-server:Redis服务器的daemon启动程序 redis-cli:Redis命令行操作工具.当然,你也可以用telnet根据其纯文本协议来操作 redis-benchmark:Redis性能测试工具,测试Redis

Redis 学习小记

由于是学习笔记,我就不来各种啰嗦,介绍这个介绍那个,也不上交给国家,或者各种对比,相信如果你真心用 redis 的话,就不会去跟 MySql,Memcached,MongoDB 等做对比了. 我原先用的是 Memcached,但是项目需求,缓存的业务也不一样了,所以打算换 Redis.虽然 Memcached 也能实现,但是技多不压身嘛,所以就有了这笔记. 第一步当然是找官网,找中文资料啦,然后就有了这三个网站.Redis 官网http://redis.io/Redis 命令参考 (中文)htt

小记——Redis初步使用

首先,以前我对Redis一直是有所耳闻,不过一直没有自己去真正使用过.这次 由于自己的业务功能涉及到需要使用NoSQL的,所以针对Redis写一个小Demo练习一下. 虽然是领导指定使用的Redis,不过不得不说Redis还是有其优势的. 一.Redis简介 Redis是一个开源的,使用C语言编写,面向"键/值"对类型数据的分布式NoSQL数据库系统,特点是高性能,持久存储,适应高并发的应用场景.Redis纯粹为应用而产生,它是一个高性能的key-value数据库,并且提供了多种语言的

小记---------maxwell 一个可以实时读取mysql二进制日志binlog,并生成JSON格式的消息,作为生产者发送给kafka,Redis,文件或其他平台的应用程序

maxwell主要提供了下列功能 支持 SELECT * FROM table 的方式进行全量数据初始化 支持在主库发生failover后,自动回复binlog位置(GTID) 可以对数据进行分区,解决数据倾斜问题,发送到kafka的数据支持database,table,column等级别的数据分区 工作方式是伪装为Slave,接受binlog events, 然后根据schemas信息拼装,可以接受ddl.xid.row等各种event 1.首先配置mysql 启用binlog (因为我们没有

Redis精华

Redis的复制功能是完全建立在之前我们讨论过的基于内存快照的持久化策略基础上的,也就是说无论你的持久化策略选择的是什么,只要用到了redis的复制功能,就一定会有内存快照发生,那么首先要注意你的系统内存容量规划,原因可以参考我上一篇文章中提到的Redis磁盘IO问题. Redis复制流程在Slave和Master端各自是一套状态机流转,涉及的状态信息是: Slave 端: Master端: 整个状态机流程过程如下: Slave端在配置文件中添加了slave of指令,于是Slave启动时读取配

logstash 学习小记

logstash 学习小记 标签(空格分隔): 日志收集 Introduce Logstash is a tool for managing events and logs. You can use it to collect logs, parse them, and store them for later use (like, for searching). – http://logstash.net 自从2013年logstash被ES公司收购之后,ELK stask正式称为官方用语.非