redis初识
# 介绍
# 引言
问题:
由于用户量增大,请求数量也随之增大,频繁的 io 访问使数据库压力过大。
多台服务器之间,数据不同步。(比如用户在服务器 1 上进行了登录,此时 session 信息只在服务器 1 上有,服务器 2、3… 没有数据,就会造成用户可能要进行多次登录)
多台服务器之间的锁,已经不存在互斥性了。
redis 如何解决:
- redis 是基于内存存储数据和读取数据的,这样就可以减少 io 访问。
- 可以将之前存储在 session 中的共享数据统一的存放在 redis 中。
- redis 基于接收用户的请求是单线程的,保证数据一致性。
# NoSQL
Redis 就是一款 NoSQL。
NoSQL --> 非关系型数据库 --> Not Only SQL。
NoSQL 数据库被分为以下四种:
- Key-Value:Redis …
- 文档型:ElasticSearch、Soir、MongoDB …
- 面向列:Hbase、Cassandra … (一般情况下是大数据方向使用的)
- 图形化:Neo4j … (一般建模用)
除了关系型数据库都是非关系型数据库。
NoSQL 只是一种概念,泛指非关系型数据库,目的是和关系型数据库做区分。
# Redis 介绍
Redis:
Redis(Remote Dictionary Server) 即 远程字典服务
Redis 是由 C 语言编写的
Redis 是一款基于 Key-Value 的 NoSQL
Redis 是基于内存存储数据的,同时提供了多种持久化机制
性能可达 110000/s 读取数据,81000/1s 写入数据
提供主从、哨兵以及集群的搭建方式,可以更方便的横向扩展以及垂直扩展。
# Redis 安装
Redis 安装目录介绍 | 目录位置 |
---|---|
官网下载目录: | /opt |
普通 Redis 安装目录: | /usr/local/redis |
Docker 安装目录: | /usr/local/docker/redis |
Redis 集群方式: | RedisCluster 6 台服务器 |
官网下载:https://redis.io/download
# 安装 gcc
因为 redis 是用 c 语言编写的,所以要确保 Linux 上有 c 语言环境,使用 root 登录,并确保 Linux 能连外网
yum -y install gcc automake autoconf libtool make |
# 安装 redis
# 下载 redis 二进制安装包
wget https://download.redis.io/releases/redis-6.2.6.tar.gz |
# 解压到 /opt 目录下
tar zxvf redis-6.2.6.tar.gz -C /opt |
# 编译
cd /opt/redis-6.2.6 && make AMLLOC=libc |
安装成功出现如下信息:
# 指定安装位置
make PREFIX=/usr/local/redis install |
(安装编译后的文件)安装到指定目录:
注意:PREFIX 必须大写、同时会自动创建 redis 目录,并将结果安装到此目录
# 查看安装后的文件
# Redis 启动
# 启动 Redis 服务端
进入对应的安装目录:
cd /usr/local/redis |
执行命令:
./bin/redis-server |
# 启动 Redis 客户端
在 redis 的安装目录中有 redis 的客户端,即 redis-cli(Redis Command Line Interface),
它是 Redis 自带的基于命令行的 Redis 客户端。
进入 Redis 客户端(重新打开一个终端) 进入对应的安装目录
cd /usr/local/redis |
执行命令:
./bin/redis-cli |
# 启动 Redis 客户端命令语法:
redis-cli -h IP地址 -p 端口 # 默认IP本机 端口6379 |
退出客户端命令:Ctrl+C
检测是否服务端启动
启动 redis 客户端,打开终端并输入命令 redis-cli。该命令会连接本地的 redis 服务。
$redis-cli |