欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

shutdown -r -t 0 有时候启动失败_Redis介绍&安装&启动

程序员文章站 2022-05-13 19:55:59
...

Redis介绍安装

Redis是一个开源的key-value存储系统, 支持存储的value类型相对更多,string(字符串),list(链表),set(集合),zset(sorted set 有序集合),hash(哈希类型)。这些数据类型都支持push/pop,add/remove及取交集并集和差集,且这些操作都是原子性的,在此基础上支持各种不同方式的排序,为了保持效率,数据都是缓存在内存中。Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步

应用场景

1.配合关系型数据库做告诉缓存

  • 高频次,热门访问的数据,降低数据库的IO

  • 分布式架构,做session共享

2.由于其拥有持久化的能力,利用其多样的数据结构存储特定的数据

安装

#linux中下载Redis
$ wget https://download.redis.io/releases/redis-6.0.9.tar.gz


--2020-11-17 04:10:21-- https://download.redis.io/releases/redis-6.0.9.tar.gz
Resolving download.redis.io (download.redis.io)... 45.60.125.1
Connecting to download.redis.io (download.redis.io)|45.60.125.1|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2261418 (2.2M) [application/octet-stream]
Saving to: ‘redis-6.0.9.tar.gz’

100%[==========================================================================>] 2,261,418   51.6KB/s   in 37s    

2020-11-17 04:10:58 (60.0 KB/s) - ‘redis-6.0.9.tar.gz’ saved [2261418/2261418]

#下载成功
-rw-r--r--. 1 root root 2261418 Oct 27 03:14 redis-6.0.9.tar.gz

#解压
$ tar -zxvf redis-6.0.9.tar.gz

#进入redis目录
$ cd redis-6.0.9

#编译
$ make

#安装
$ make install

#备份redis.conf到任意目录
$ cp redis.conf /soft/redis.conf
#修改文件里的daemonize no 改为 yes 允许后台启动
#启动
$ redis-server redis.conf

#查看
$ ps -ef | grep redis
root      6308     1  0 04:42 ?        00:00:00 redis-server 127.0.0.1:6379
root      6314  5696  0 04:42 pts/0    00:00:00 grep --color=auto redis

#启动客户端
$ redis-cli

#完整写法 redis-cli -h 127.0.0.1 -p 6379

#验证
$ ping

#退出
$ exit

#关闭客户端和服务端
$ shutdown
#关闭服务端
$ redis-cli shutdown

#如果失败,可尝试运行一下命令后再make
#1、安装gcc套装:

yum install cpp
yum install binutils
yum install glibc
yum install glibc-kernheaders
yum install glibc-common
yum install glibc-devel
yum install gcc
yum install make
#2、升级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

#默认安装目录 usr/local/bin
#性能测试工具
-rwxr-xr-x. 1 root root 4740992 Nov 17 04:25 redis-benchmark
#修复有问题的AOF文件
-rwxr-xr-x. 1 root root 9724312 Nov 17 04:25 redis-check-aof
#修复有问题的dump.rdb文件
-rwxr-xr-x. 1 root root 9724312 Nov 17 04:25 redis-check-rdb
#客户端操作入口
-rwxr-xr-x. 1 root root 5061320 Nov 17 04:25 redis-cli
#集群使用(哨兵)
lrwxrwxrwx. 1 root root      12 Nov 17 04:25 redis-sentinel -> redis-server
#启动命令
-rwxr-xr-x. 1 root root 9724312 Nov 17 04:25 redis-server
  • 端口6379

  • 默认16个数据库,类似数组下标从0开始,初始默认使用0号库使用命令select 来切换数据库

  • 统一密码管理,所有库都是同样密码

Redis是单线程+多路IO复用技术

多路复用是指使用一个线程来检查多个文件描述符(Socket)的就绪状态,比如调用select和poll函数,传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞直到超时。得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行(比如使用线程池)

串行 vs 多线程+锁(memcached) vs 单线程+多路IO复用(redis)