Redis_01_Redis安装与使用

Posted 毛奇志

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis_01_Redis安装与使用相关的知识,希望对你有一定的参考价值。

文章目录

一、前言

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

二、Redis概要

2.1 数据库发展阶段

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 https://download.redis.io/releases/redis-6.0.9.tar.gz

2、解压压缩包

tar -zxvf redis-6.0.9.tar.gz

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的注释,在外网(比如阿里云)这个必须要配置!

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 -9 xxxx

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

3.2 Redis使用

3.2.1 database 基本命令

 select 0  # 干掉当前db所有key
 flushdb   # 干掉当前db所有key
 flushall  # 干掉当前db所有key

在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 qingshan

四、尾声

Redis安装与使用,完成了。

以上是关于Redis_01_Redis安装与使用的主要内容,如果未能解决你的问题,请参考以下文章

Redis_15_Redis线程模型与事件

redis学习——day01_redis简介与安装

redis01_介绍与安装_NoSqlRedis(redis不需要考虑windows上面的支持,只需要考虑Linux)Linux的默认安装目录usr/local/bin

Redis_24_Redission的使用

Redis_24_Redission的使用

Redis_06_Redis内存回收机制