Redis——01 学习
Redis——01
主要学习目标:
- Redis 的特点以及使用场景
- Redis 单机版
- Redis 常用命令
- ~ 持久化策略
- ~ 主从复制
- 哨兵
- 集群
- Jedis
- SpringDataRedis
Redis 的特点以及使用场景
1. NoSQL 简介
关系型数据库为当前主流的数据存储。但是操作关系型数据库都需要进行频繁的 I/O 操作,也是主要影响系统性能的原因之一,并且与数据库的连接和关闭也是需要消耗性能的。即使有了连接池技术,在某些特定的场景下依旧会影响。
所以出现了 NoSQL
(Not Only SQL,不仅仅可以使用关系型数据库) 数据库,一些特定的场景使用 NoSQL 会更好。也就是 非关系型数据库
,尽量规避对文件进行频繁的 I/O 操作,提升性能。
常见的 NoSQL 数据库:
- memcached:键值对(K-V 服务),内存型数据库,所有的数据存在内存中。
- Redis:和 Memcached 类似,还具备持久化能力(只为断电重启恢复数据准备,读写都在内存中进行)
- HBase:以列作为存储(主要大数据使用)
- MongoDB:以 Document 做存储 (文件型,分布式),内存+磁盘。
2. Redis 简介
Redis 以 Key-Value
形式进行存储的 NoSQL 数据库,使用 C 语言
进行编写,主要操作的数据都在内存中
,效率非常高,所以大多情况下 Redis 作为缓存工具使用
。
Redis 以 solt (槽)
作为数据存储单元,并没有大小限制,每个槽中可以存储 N 多个键值对。Redis 固定具有 16384
个槽,因为槽没有大小限制,只有个数限制,理论上可以实现一个槽是一个 Redis。
Redis 的安装(Linux——CentOS 7.x)
1. 安装 C 语言需要的依赖
Redis 由 C 语言编写,所以需要安装 C 语言库
yum install -y gcc-c++ automake autoconf libtool make tcl
2. Redis 程序主体安装包
查看官网历史版本,这里使用的是 5.0.5,移到 Linux 中。
使用命令将其解压:
tar -zxf redis-5.0.5.tar.gz
会多处一个目录,里面就是 redis 的源码目录,但是此时都是源码(C 语言),还不是应用,需要再安装一下。
在当前目录下执行make
命令,会按照 Makefile
来对其进行编译成可执行文件。
等编译结束后,就可以开始 Redis 正式的安装了。
make install PREFIX=安装路径
如果没有 PREFIX 的话默认安装时当前路径,但是当前这个目录时 Redis 的源码包,不是很合适,所以可以找一个目录将其作为安装目录。
查看安装的Redis路径的文件:
- server 服务器
- cli 客户端
- check-aof 检查 aof
- check-rdb 检查 rdb
- benchmark 做统计
- sentinel 做哨兵的
3. Redis 的启动
启动 bin/redis-server
即可:
默认前台启动,这个窗口是不能关的。
上面显示了 Redis 的一些基本信息:
- 版本号 5.0.5 64 bit
- standalone 单机版
- 端口号:6379
- 进程ID:11332
接下来开始测试一下客户端是否能连接上:
启动 Redis 的客户端
bin/redis-cli
现在表示已经连接上了,quit 退出。
在服务端 ctrl + c
退出时,发现打印了一些信息:
大概意思是用户请求关闭 Redis 服务,在退出前进行了 RDB 快照保存在了磁盘上。
此时查看目录会发现多了一个文件:dump.rdb
,这个是 Redis 帮我们做的一个内存快照,默认情况下会每隔一段时间做一次,以及在关闭服务前做一次,为的是如果服务器宕机,重新启动 Redis 会自动加载 dump.rdb
将数据库恢复到上一次做内存快照的状态。可以在 conf 文件中配置相关参数。
需要注意的是:dump.rdb 文件生成的位置。
你的 redis 服务器在哪个路径下启动的,dump.rdb 就生成在哪,如果换个路径启动,则 dump.rdb 会重新生成,或者如果没有的话启动就不会加载 dump.rdb。
4. 修改 redis.conf 文件
之前编译 redis 的目录中有一个 redis.conf
文件,是 redis 配置文件模板,我们将其复制一份到 redis 的安装目录中进行集中管理。
cp redis.conf /usr/local/redis-5/
:复制一份到安装目录vim/vi redis.conf
:编写 redis 配置文件
修改的地方:
- 注释掉
bind 127.0.0.1
:这里表示如果没有指定 bind 的主机则会监听所有的请求,如果指定了,就只能监听指定的 ip,这里将其注释就能远程访问了。 - 将
protected-mode yes
改为protected-mode no
:如果没有 bind ip地址,也没有做密码配置的时候,将其安全模式关闭,不然访问会有很大的限制。 daemonize no
改为damonize yes
,该设置会生成一个 pid 文件,在后台运行,之前运行 redis 都是前台运行,现在可以在后台运行,有一个守护进程。
启动 redis 并指定配置文件:
bin/redis-server redis.conf
这个配置文件的指定可以是相对路径和绝对路径,所以按理来说 redis.conf
在任意位置都行。
启动效果:
查看当前 redis 进程状态:
ps aux | grep redis
可以看到 redis-server 的端口是:6379,此时在后台运行。
那么怎么关闭呢?
redis-server 并没有直接的关闭指令,但是可以通过 redis-cli 发送一个命令给 server 让其关闭。
bin/redis-cli shutdown
(推荐)kill -kill PID
使用 kill 命令,不推荐可能会造成 redis 持久化失败(快照失败)
相关文章
- 直接在代码里面对list集合进行分页
- .NET Framework 4.5新特性详解
- 大数据的简要介绍
- 大数据的由来
- 高斯混合模型的自然梯度变量推理
- timing-wheel 仿Kafka实现的时间轮算法
- 使用Navicat软件连接自建数据库(Linux系统)
- 那一天,我被Redis主从架构支配的恐惧
- Redis 深入了解键的过期时间
- C#使用委托调用实现用户端等待闪屏
- 基于流计算 Oceanus 和 Elasticsearch Service 构建百亿级实时监控系统
- GRAND | 转录调控网络预测数据库
- JFreeChart API中文文档
- 临床相关突变查询数据库
- TIGER | 人类胰岛基因变化查询数据库
- 视频边缘计算网关EasyNVR在视频整体监控解决方案中的应用分析
- Apache Arrow - 大数据在数据湖后的下一个风向标
- 常见的电商数据指标体系
- AKShare-艺人数据-艺人流量价值
- MySQL中多表联合查询与子查询的这些区别,你可能不知道!