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安装与使用的主要内容,如果未能解决你的问题,请参考以下文章
redis01_介绍与安装_NoSqlRedis(redis不需要考虑windows上面的支持,只需要考虑Linux)Linux的默认安装目录usr/local/bin