Redis的学习(一)Redis 简介以及Redis6.0的具体安装步骤

Redis简介

  • 高性能底层采用C语言编写,内存数据库,通讯采用epoll非阻塞、I/O多路复用机制;
  • 线程安全原子操作,单线程,保证高并发场景下的线程安全;
  • 功能丰富:
    • 数据结构:
      • 基本:String、List、HashSet、SortedSet;
      • 高阶:GEO、BitMap、HyperLogLog;
    • 持久化: RDB持久化、AOF持久化、RDB-AOF混合持久化;
    • 主从模式(Master-Slave):解决并发访问的问题,采用哨兵模式完成主从切换;
    • 集群:采用分片存储;
    • 模块化机制:自定义个性化需求;

正因为Redis的功能丰富且强大,能够支撑很多的互联网应用场景,如缓存、分布式锁、队列、集合、GEO、BitMap操作等;

特点

  • 内存数据库,速度快,支持数据的持久化;
  • Redis不仅仅支持简单的key-value类型的数据,同时提供了Lists、Hashes、Sets、SortedSets等多种数据结构的存储;
  • Redis支持数据的备份(master-slaver)与集群(分片存储),以及拥有哨兵监控机制;
  • 支持事务;

优势

  • 性能极高:Redis能读的速度是11w次/s,写的速度是8w1次/s;
  • 丰富的数据类型:Redis支持Strings、Lists、Hashes、Sets、Sorted Sets等数据类型操作;
  • 原子操作:Redis的所有操作都是原子性的,同时Redis还支持对几个操作合并后的原子性执行(事务);
  • 丰富的特性:Redis还支持publish/subscribe、通知、key过期等特性;

Redis、Memcached、Encache区别

Redis的高并发

原理
  • Redis是纯内存数据库,所以读取数据快;
  • Redis使用的是非阻塞IO、IO多路复用、减少了线程切换时上下文的切换和竞争;
  • Redis采用的是单线程的模型,保证了每个操作的原子性,也减少了线程的上下文切换和竞争;
  • Redis存储结构多样化,不同的数据结构对数据存储进行了优化加快读取的速度;
  • Redis采用自己实现的事件分离器,效率比较高,内部采用非阻塞的执行方式,吞吐能力比较大;
Redis的单线程
原因
  • 不需要各种锁的性能消耗;
  • 单线程多线程进程集群方案
  • CPU消耗;
优势
  • 代码清晰,处理逻辑简单;
  • 不需要考虑各种锁的问题,包括加锁释放锁;
  • 不存在多线程或者多进程导致的切换而消耗CPU;
劣势

无法发挥多核CPU性能,不过可以通过在单机开多个Redis实例来完善;

IO多路复用技术

redis采用网络IO多路复用技术来保证在多连接时候,系统的高吞吐量

Redis软件安装

安装之前首先保证Centos使用了阿里的yum源以及安装了wget命令!

下载

下载地址: Redis下载地址
下载具体的方式:

wget -P /usr/local/src/ https://download.redis.io/releases/redis-6.0.9.tar.gz

解压

tar -zxvf redis-6.0.9.tar.gz
yum install -y gcc-c++ autoconf automake
cd redis-6.0.9/ (进入redis安装目录)
#升级GCC版本
#安装scl源
yum install -y centos-release-scl scl-utils-build
# 安装9版本的gcc、gcc-c++、gdb工具链
yum install -y devtoolset-9-toolchain
# 临时覆盖系统原有的gcc引用
scl enable devtoolset-9 bash
# 查看gcc当前版本
gcc -v

预编译

进入redis安装目录

make
mkdir -p /usr/local/redis
#指定Redis安装目录
make PREFIX=/usr/local/redis/ install

进入Redis

cd  /usr/local/redis
ls
cd bin/
ls

在这里插入图片描述
至此,Redis安装成功;

启动Redis

在这里插入图片描述

修改Redis配置以守护进程方式启动

  • 进入redis.conf
    修改守护进程的配置将配置打开:

daemonize yes

  • 以守护进程的方式启动Redis
    !在这里插入图片描述](https://img-blog.csdnimg.cn/20210105235016635.png)

这里的redis.conf配置文件是从解压之后的文件中获得的,将其cp到redis编译安装的目录下面之后,启动的时候指定该配置文件即可;

设置Redis开机自启

1、在系统服务目录里创建redis.service文件

 vim /etc/systemd/system/redis.service

2、写入以下内容:

[Unit]
Description=redis-server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target

重载系统服务: systemctl daemon-reload

3、测试并加入开机自启动

  • 关闭redis-server:systemctl stop redis.service
  • 开启redis-server: systemctl start redis.server
  • 查看redis-server状态: systemctl status redis.service

4、测试成功之后,将服务加入开机自启动即可

systemctl enable redis.service

##################################################

Redis的重新学习

Redis安装

1、安装gcc命令

yum install gcc -y
gcc --version

2、解压Reids安装包:redis-6.2.1.tar.gz

tar -zxvf redis-6.2.1.tar.gz

3、进入Redis安装目录,编译Redis

make

4、安装Redis

make install
在这里插入图片描述

5、安装目录: /usr/local/bin

  • redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何
  • redis-check-aof:修复有问题的AOF文件,rdb和aof后面讲
  • redis-check-dump:修复有问题的dump.rdb文件
  • redis-sentinel:Redis集群使用
  • redis-server:Redis服务器启动命令
  • redis-cli:客户端,操作入口

6、Redis后台启动(推荐!!!)
6.1 备份redis.conf,进入Redis安装目录

cp redis.conf /etc/redis.conf

6.2 将etc目录下的redis.conf的配置修改

修改redis.conf(128行)文件将里面的daemonize no 改成 yes,让服务在后台启动

6.3 保存退出后进入/usr/local/bin

redis-server /etc/redis.conf
即可完成后台启动

Redis相关知识介绍

  • 默认16个数据库,类似数组下标从0开始,初始默认使用0号库
  • 使用命令 select 来切换数据库。如: select 8 ;
  • 统一密码管理,所有库同样密码;
  • dbsize:查看当前数据库的key的数量;
  • flushdb:清空当前库;
  • flushall:通杀全部库;
  • Redis是单线程+多路IO复用技术,多路复用是指使用一个线程来检查多个文件描述符(Socket)的就绪状态,比如调用select和poll函数,传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞直到超时。得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行(比如使用线程池);
  • Redis特点:
    • 支持多数据类型;
    • 支持持久化;
    • 单线程+多路IO复用;

key键的操作

  • keys * :查看当前库所有key (匹配:keys *1)
  • exists key:判断某个key是否存在
  • type key: 查看你的key是什么类型
  • del key:删除指定的key数据
  • unlink key:根据value选择非阻塞删除,仅将keys从keyspace元数据中删除,真正的删除会在后续异步操作。
  • expire key 10: 10秒钟:为给定的key设置过期时间
  • ttl key: 查看还有多少秒过期,-1表示永不过期,-2表示已过期
  • select:命令切换数据库
  • dbsize:查看当前数据库的key的数量
  • flushdb:清空当前库
  • flushall:通杀全部库
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值