天天看点

Redis_01_Redis安装与使用

文章目录

  • ​​一、前言​​
  • ​​二、Redis概要​​
  • ​​2.1 数据库发展阶段​​
  • ​​2.2 关系型数据库​​
  • ​​2.2.1 关系型数据库的特点​​
  • ​​2.2.2 关系型数据库的不足​​
  • ​​2.3 非关系型数据库​​
  • ​​2.3.1 非关系型数据库特点​​
  • ​​2.3.2 各种类型的非关系型数据库​​
  • ​​2.4 Redis是运行在内存中基于键值对存储的非关系型数据库​​
  • ​​三、Redis安装和使用​​
  • ​​3.1 Redis安装​​
  • ​​3.2 Redis使用​​
  • ​​3.2.1 database 基本命令​​
  • ​​3.2.2 key基本命令​​
  • ​​四、尾声​​

一、前言

本文包括Redis的定位与基本特性(本文使用Redis 6.0.9,使用自己本地vmware虚拟机 192.168.100.138 安装redis并使用)。

二、Redis概要

2.1 数据库发展阶段

Redis_01_Redis安装与使用

2.2 关系型数据库

2.2.1 关系型数据库的特点

关系型数据库的特点

1、基于行存储数据,二维的模式

2、存储结构化的数据,数据存储有固定的模式(schema)

3、表与表之间存在联(Relationship)

4、大都支持SQL(结构化查询语言)的操作,支持复杂的联查询

5、通过支持事务ACID(酸)来提供严格或者实时的数据一致性

2.2.2 关系型数据库的不足

关系型数据库的不足

1、要实现扩容的话,只能向(垂直)扩展,不支持动态的扩缩容

2、表结构修改困难,因此存储的数据格式也受到限制

3、高并发情况下,基于磁盘的读写压力比较大

2.3 非关系型数据库

2.3.1 非关系型数据库特点

非关系型数据库特点(non-relational)

1、存储非结构化的数据,比如文本、图片、音频、视频

2、表与表之间没有联,可扩展性强

3、保证数据的最终一致性,遵循BASE(碱)理论

4、支持海量数据的存储和高并发的高效读写

5、支持分布式,能够对数据进行分片存储,扩缩容简单

2.3.2 各种类型的非关系型数据库

各种类型的非关系型数据库

1、KV存储:Redis和Memcached

2、文档存储:MongoDB

3、列存储:HBase

4、图存储:Neo4j

5、对象存储

6、XML存储

所以,Redis的本质是一种基于键值对的非关系型数据库,即 Redis全称 Remote Dictionary Service 远程字典服务,就是指 Redis 是使用 键值对/字典 存储的。

Redis和Memcached 都是使用键值对存储的非关系型数据库,都是运行在内存中,都是底层树形存储结构(mysql是表型存储结构)。

2.4 Redis是运行在内存中基于键值对存储的非关系型数据库

Redis是运行在内存中基于键值对存储的非关系型数据库,存储结构是树型。

Redis基本特性

速度快

支持多种数据类型

支持多种编程语言

持久化、内存淘汰

功能丰富:事务、发布订阅、pipeline、lua

集群、分布式

Redis 2020 新动向( Redis 6.0)

​​​ http://antirez.com/news/131​​ http://antirez.com/news/133

三、Redis安装和使用

参考:

CentOS7 安装Redis单实例

​​​ https://gper.club/articles/7e7e7f7ff3g5bgccg69​​​ 阿里云CentOS7 Docker安装Redis

https://gper.club/articles/7e7e7f7ff7g5egc5g6c

Redis一主二从Sentinel监控配置

https://gper.club/articles/7e7e7f7ff3g5bgccg68

CentOS 7 单机安装Redis Cluster(3主3从伪集群)

https://gper.club/articles/7e7e7f7ff3g5bgcdg60

3.1 Redis安装

1、下载redis

cd /usr/local/soft/
wget      

2、解压压缩包

tar      

3、安装gcc依赖

Redis是C语言编写的,编译需要GCC。

Redis6.x.x版本支持了多线程,需要gcc的版本大于4.9,但是CentOS7的默认版本是4.8.5。

查看gcc的版本:

gcc -v      

升级gcc版本:

yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile      

确认gcc的版本(在同一个窗口中!):

gcc -v      

4、编译安装

cd redis-6.0.9/src
make install      

安装成功的结果是src目录下面出现服务端和客户端的脚本

redis-server
redis-cli
redis-sentinel      

5、修改配置文件

默认的配置文件是/usr/local/soft/redis-6.0.9/redis.conf

后台启动,不然窗口一关服务就挂了

daemonize no      

改成

daemonize yes      

下面一行必须改成 bind 0.0.0.0 或注释,否则只能在本机访问

bind 127.0.0.1      

如果需要密码访问,取消requirepass的注释,在外网(比如阿里云)这个必须要配置,在自己的vmware虚拟机上一般不用设置密码,就保持 requirepass 这一行注释就好了。

requirepass yourpassword      

6、使用指定配置文件启动Redis

/usr/local/soft/redis-6.0.9/src/redis-server /usr/local/soft/redis-6.0.9/redis.conf      

查看端口是否启动成功: (可以用 netstat -nlpt | grep 6379 也可以用 ps -ef|grep redis 或者 ps -ef|grep 6379)

netstat -an|grep 6379      

7、进入客户端

/usr/local/soft/redis-6.0.9/src/redis-cli      

8、停止redis(在客户端中)

redis> shutdown      

ps -aux | grep redis
kill      

如下:./src/redis-server redis.conf 启动服务端,使用 ./redis-cli 启动客户端

Redis_01_Redis安装与使用

3.2 Redis使用

3.2.1 database 基本命令

select 0  # 干掉当前db所有key
 flushdb   # 干掉当前db所有key
 flushall  # 干掉当前db所有key      
Redis_01_Redis安装与使用

在redis中,flushdb和flushall 都是清空当前数据库的操作,但是两者有很大的区别:

1、flushall 清空数据库并执行持久化操作,也就是rdb文件会发生改变,变成76个字节大小(初始状态下为76字节),所以执行flushall之后数据库真正意义上清空了.

2、flushdb 清空数据库,但是不执行持久化操作,也就是说rdb文件不发生改变.而redis的数据是从rdb快照文件中读取加载到内存的,所以在flushdb之后,如果想恢复数据库,则可以直接kill掉redis-server进程,然后重新启动服务,这样redis重新读取rdb文件,数据恢复到flushdb操作之前的状态.

注意:要直接kill 掉redis-server服务,因为shutdown操作会触发持久化.

lsof -i:6379 命令查看redis-server的进程号,然后kill即可

3.2.2 key基本命令

set qingshan 2673(增/改) 
 get qingshan(查) 
 keys * 
 dbsize 
 exists qingshan 
 del qingshan huihui(删) 
 rename qingshan pengyuyan 
 type      

四、尾声