Redis入门(一)--初识Redis

第一章、初识Redis

一、Redis介绍

1、NoSQL数据库

NoSLQ(Not Only SQL )意为“不仅仅是SQL”,泛指非关系型的数据库
NoSQL 不依赖业务逻辑方式存储,而以简单的Key-Value 模式存储。因私大大的增加了数据库的扩展能力。

  • 不遵循SQL 标准
  • 不支持ACID
  • 远超于SQL 的性能
  • 用不着SQL 的和用了 SQL 也不行的情况,请考虑用NoSQL

NoSQL适用场景

  • 对数据高并发的读写
  • 海量数据的读写
  • 对数据高可扩展性

NoSQL不适用场景

  • 需要事务支持
  • 基于sql 的结构化查询存储,处理复杂的关系。

常用的NoSQL 数据库
Memcache:

  • 很早出现的NoSQL数据库
  • 数据都在内存中,一般不持久化
  • 支持简单的Key-Value 模式,支持类型单一(只支持字符串)
  • 一般是作为缓存数据库辅助持久化的数据库
  • memcache 的机制是多线程+锁的方式

Redis:

  • 几乎覆盖了Memcached的绝大部分功能
  • 数据都在内存中,支持持久化,主要用作备份恢复
  • 除了支持简单的Key-Value 模式,还支持多种数据结构的存储,比如List、Set、Hash、ZSet等。
  • 一般作为缓存数据库辅助持久化的数据库
  • Redis 的机制是单线程+多路IO 复用,效率比Memcache更高

MongoDB:

  • 高性能、开源、模式自由(schema free)的文档型数据库
  • 数据都在内存中,如果内存不足,把不常用的数据保存到硬盘
  • 虽然是Key-Value 模式,但是对Value (尤其是JSON)提供了丰富的查询功能
  • 支持二进制数据及大型对象
  • 可以根据数据的特点替代RDBMS (关系型数据库系统),成为独立的数据库。或者配合RDBMS ,存储特定的数据。

2、Redis 概述

Redis之父 Salvatore Sanfilippo
在这里插入图片描述
Redis是开源的Key-Value 型NoSQL 数据库。
Redis 的各种操作都是原子性的。还支持各种不同方式的排序。
Redis将数据存储在内存中,同时也能持久化到磁盘。
Redis常用于缓存,利用内存的高效提高程序的处理速度。

3、Redis特点

  • 速度快
  • 广泛的语言支持
  • 持久化
  • 多种数据结构
  • 主从复制
  • 分布式与高可用

二、Redis的安装与启动

1、在Linux系统安装Redis

Redis官网下载地址
https://redis.io/download/
具体安装步骤请参考Linux基础博客中的编译安装Redis部分:
服务器技术(一)–Linux基础入门(4)–安装与卸载应用程序

2、在Windows系统安装Redis

Redis官方只提供了Linux系统的安装包,默认是不支持Windows系统的。微软有个研发小组对Redis底层的重构,开发出了一款能在Windows平台上运行的Redis。
Github地址:
https://github.com/MicrosoftArchive/redis
打开Github地址,找到Releases鼠标点击打开
在这里插入图片描述
然后找到zip版本,点击下载
在这里插入图片描述
下载完成后解压文件
在这里插入图片描述
解压完后打开运行对话框(Win+R),输入cmd
在这里插入图片描述
在弹出的命令行中切换目录到Redis解压的路径
在这里插入图片描述
然后输入redis-server redis.windows.conf启动Redis。
在这里插入图片描述

三、Redis 启动及常用配置

1、前台启动

打开Xshell连接虚拟机,切换目录到Redis安装的路径,执行./src/redis-server redis.conf启动Redis
在这里插入图片描述
启动成功后,此时Redis在前台运行,我们按下Ctrl+C回到命令行,Redis也会随之退出。
在这里插入图片描述

2、后台启动

为了让Redis在系统后台运行,我们执行vim redis.conf打开配置文件按PgDn往下找到如图位置
在这里插入图片描述
其中daemonize为守护进程的意思,说白了就是是否后台运行,我们把参数值改为yes保存。然后我们再启动Redis并没显式启动日志
在这里插入图片描述
但是我们可以输入netstat -tulpn验证Redis已经后台启动。
在这里插入图片描述
如果想退出Redis我们可以输入kill -9 对应的进程编号,如图。(不太建议,后面有正常退出的方案)再次输入netstat -tulpn查看Redis端口就不见了。
在这里插入图片描述

3、redis-cli客户端访问

我们再次启动Redis,然后可以输入./src/redis-cli连接Redis,我们可以输入ping看看Redis回应
在这里插入图片描述
输入exit退出redis-cli客户端。
在这里插入图片描述

4、Redis 关闭

可以输入./src/redis-cli shutdown关闭Redis进程
在这里插入图片描述

5、修改Redis 配置文件

在这里插入图片描述
输入vim redis.conf打开配置文件,在138行有端口号配置项,我们可以改成6380
在这里插入图片描述
然后继续往下找,大概354行有日志文件logfile配置项
在这里插入图片描述
我们可以将值改为redis.log
在这里插入图片描述
配置完保存退出。然后重新启动Redis,当前路径下就多了个redis.log文件在这里插入图片描述
我们可以执行cat redis.log查看日志
在这里插入图片描述
我们再想用客户端连接就需要加端口号了,如./src/redis-cli -p 6380
在这里插入图片描述
我们可以输入select 15切换数据库,其中Redis数据没有名称,用序号标记,从0开始(默认0),默认最多有16个数据库。
在这里插入图片描述
退出客户端,打开redis.conf配置文件,在379行有databases配置项,表示数据库数量。
在这里插入图片描述
我们可以改为255保存,输入./src/redis-cli -p 6380 shutdown关闭Redis,然后再启动,可以切换序号更大的数据库了。
在这里插入图片描述
退出客户端,打开redis.conf配置文件,输入/requirepass搜索,找到密码配置
在这里插入图片描述
把注释打开,密码值改为12345保存,重启Redis
在这里插入图片描述
重启后,再用客户端连接,输入ping会报错,提示没有通过认证,输入auth 12345认证,在输入ping就正常了
在这里插入图片描述
在redis.conf配置文件504行有个dir配置,表示数据文件的保存路径,默认Redis安装目录
在这里插入图片描述
然后在Redis安装目录下可以找到dump.rdb为Redis全量备份的数据文件。
在这里插入图片描述
其他配置

  • Units 单位
    配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit ,大小写不敏感
    在这里插入图片描述
  • INCLUDES
    包含其他配置文件
  • NETWORK
    • bind 默认情况 bind = 127.0.0.1 只能接收本机的访问请求,不写的情况下,无限制接收任何ip 地址的访问
    • protected-mode 将本机访问保护模式,yes 时只能本地访问,no 时可以支持远程访问
    • port 端口号
    • tcp-backlog :tcp 的backlog,backlog 其实是一个连接队列,backlog 队列总和= 未完成三次握手队列 + 已经完成三次握手队列。
    • timeout :一个空闲的客户端维持多少秒会关闭,0 表示永不关闭。
    • tcp-keepalive :检查心跳的时间
  • GENERAL
    • daemonize :是否启用后台启动,默认no
    • pidfile :存放pid 文件的位置,每个实例会产生一个不同的pid 文件
    • loglevel :日志级别,值分别为debug、verbose、notice(默认)、warning
    • logfile :设置日志的输出文件路径
    • database :设置redis 数据库总量,默认16
  • SECURITY
    • requirepass :设置密码
  • CLIENTS
    • maxclients 10000 最大连接数
  • MEMORY MANAGEMENT
    • maxmemory 最大占用内存,一旦达到最大内存上限,redis 将会移除内部数据,移除规则可以通过 maxmemory-policy 来规定。
    • maxmemory-samples 样本数量,LRU算法和最小 TTL 算法都并非是精确的算法,而是估算值,所以可以设置样本的大小,redis 默认会检查这么多个key 并选择其中的LRU 的那个
      一般设置3 到7 的数字,数值越小样本越不准确,但是性能消耗越小。

四、Redis通用命令

在这里插入图片描述
在这里插入图片描述

  • type key 查看key 是什么类型
  • unlink key 根据value 选择非阻塞删除。仅将keys 从 keyspace 元数据中删除,真正的删除会在后续异步操作。
  • ttl key 查看还有多小秒过期。-1表示永不过期,-2表示已过期
  • flushdb 清空当前库
  • flushall 通杀全部库
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值