Redis数据库与Linux配置

作者: pdnbplus | 发布时间: 2024/06/17 | 阅读量: 159

# Redis数据库与Linux配置 -- 潘登同学的后端笔记

NoSQL的由来

Redis是属于NoSQL技术下的一种实现,是应对越来越大的数据量,数据类型结构越来越复杂的背景下,创建的专门用于处理此类数据(如:大文本字段,图片等),分担读写压力的

NoSQL = Not only SQL 不仅是SQL

泛指非关系型数据库, 对比关系型数据库, NoSQL没有sql语句,不需要设计表结构,没有表关系

很多数据类型如: 用户的个人信息,社交网络,地理位置,这些数据类型的储存不需要一个固定的模型,只用JSON来储存即可

NoSQL的特点

  1. 方便扩展
  2. 大数据量高性能
  3. 数据类型多样性
  4. 传统RDBMS 与 NoSQL

    RDBMS:

    • 结构化数据
    • 结构化查询语句SQL
    • 数据和关系都存储在单独的表中
    • 数据操纵语言,数据定义语言
    • 严格的一致性
    • 基础事务

    NoSQL:

    • 没有固定的查询语言
    • 键值对存储、列存储、文档存储、图关系数据库
    • 最终一致性
    • CAP定理和BASE理论
    • 高性能,高可用,高可扩

NoSQL的四大分类

分类 常见数据库 典型应用场景 优点 缺点
键值对(key-value) Tokyo,
Cabinet/Tyrant,
Redis,
Voldemort,
Oracle BDB
内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等。 查找速度快 数据无结构化,通常只被当作字符串或者二进制数据
文档型数据库 CouchDB,
MongoDB
Web应用(与Key-Value类似,Value是结构化的,不同的是数据库能够了解Value的内容) 数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构 功能相对局限
列存储数据库 Cassandra,
HBase,
Riak
分布式的文件系统 查找速度快,可扩展性强,更容易进行分布式扩展 查询性能不高,而且缺乏统一的查询语法。
图形数据库 Neo4J,
InfoGrid,
Infinite Graph
社交网络,推荐系统等。专注于构建关系图谱 利用图结构相关算法。比如最短路径寻址,N度关系查找等 很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案。

Linux 下载安装

先下载VMware Workstation Pro https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html

安装一路next即可,最后选择输入许可证(支持正版哦!!)

再下载 CentOS

阿里镜像站 https://mirrors.aliyun.com/centos-vault/

版本选择 7.5 -> isos -> x86_64 -> CentOS-7-x86_64-DVD-1804.iso

最后下载xshell https://link.zhihu.com/?target=https%3A//xshell.en.softonic.com/%3F

VMware相当于机子,CentOS相当于window装系统的光碟,xshell相当于解释器

新建虚拟机

Linux安装1

Linux安装2

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

然后等待系统安装

在这里插入图片描述

然后重启即可

查看自己的ip地址

点击编辑 -> 虚拟网络编辑器

在这里插入图片描述

点击NAT设置

在这里插入图片描述

留意子网IP与子网掩码

在这里插入图片描述

右键WiFi图标,点击网络设置

在这里插入图片描述

在这里插入图片描述

右键属性

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

点击右下角的NAT,先断开再连接

在这里插入图片描述

重启后,进入系统, 用户名为root,密码为之前设置的那个,直接输入就行,他不会显示*的,因为防止别人知道你密码的长度

在这里插入图片描述

然后输入

cd /etc/sysconfig/network-scripts/
vi ifcfg-ens33

然后将DEVICE=ens33往下的改成

在这里插入图片描述

然后ESC + : + wq + Enter

然后重启即可

在这里插入图片描述

安装Xshell

基本上next就行,参考 https://zhuanlan.zhihu.com/p/196664911

然后进入Xshell的窗口,先ping刚才的ip地址,如果能ping通就连接,输入

ssh root@192.168.xxx.xx

然后会弹出一个窗口,输密码即可

在这里插入图片描述

Redis

  1. Redis(Remote Dictionary Server 远程字段服务)是一个开源的使用ANSI C语言编写、支持网 络、内存亦可持久化的key-value数据库,并提供多种语言的API。
  2. Redis是一个key-value存储系统,它支持存储的value类型相对更多,包括string、list、set、 zset(sorted set --有序集合)和hash。这些数据结构都支持push/pop、add/remove及取交集并 集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis支持各种不同方式的 排序。为了保证效率,数据都是缓存在内存中,Redis会周期性的把更新的数据写入磁盘或者把修 改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
  3. Redis提供了java、C/C++、PHP、JavaScript、Perl、Object-C、Python、Ruby、Erlang等客户 端,使用很方便。

Redis官方网址:https://redis.io/

在Xshell连接到虚拟机后,依次输入下列指令

cd /opt
wget https://download.redis.io/releases/redis-6.2.6.tar.gz  # 下载
tar -xf redis-6.2.6.tar.gz  # 解压
cd redis-6.2.6/
ls
yum install gcc* -y  # 安装c语言 因为redis是c语言开发的
make # 开始编译安装包
make install
cd /usr/local/bin
ls

发现与redis有关的东西都装在了这里,他们分别的作用是

  • redis-benchmark:Redis自带的基准性能测试工具
  • redis-check-aof:对有问题的 AOF 文件进行修复,AOF和RDB文件后面会说明
  • redis-check-rdb:对有问题的 RDB文件进行修复
  • redis-sentinel:Redis集群使用
  • redis-cli:客户端
  • redis-server:服务器启动

前台启动

会占用一个shell,这个shell什么都干不了,只能跑服务

./redis-server

当看到下图时表明服务启动成功

在这里插入图片描述

新开一个Xshell连接上虚拟机,然后输入redis-cli,如果能进到6379的端口号,就表明成功启动

在这里插入图片描述

后台启动

如果刚才选择了前台启动,那么Ctrl + C退出

  • 拷贝redis-6.2.6目录中的redis.conf文件到其他目录
mkdir /usr/local/myredis
cp /opt/redis-6.2.6/redis.conf /usr/local/myredis/redis.conf

设置/usr/local/myredis/redis.conf文件中的daemonize属性,由no改为yes

yum install vim -y  # 装一个vim方便编辑
vim redis.conf  # 进入配置文件
:set number  # 设置行号
i

找到daemonize属性,由no改为yes,最后Esc + : + wq

在这里插入图片描述

在/usr/local/bin下执行

cd /usr/local/bin
./redis-server /usr/local/myredis/redis.conf
./redis-cli

在这里插入图片描述