Linux环境下安装Redis

1. 安装gcc

1
yum -y install gcc gcc-c++

2. 下载安装包

1
wget http://download.redis.io/redis-stable.tar.gz 

3. 解压

1
2
3
4
tar xvzf redis-stable.tar.gz

#移动redis目录,一般都会将redis目录放置到 /usr/local/redis目录
mv redis-stable /usr/local/redis

4. 编译

1
2
3
4
5
6
7
8
9
10
11
cd /usr/local/redis
make
# 如果执行make命令报错:cc 未找到命令,原因是虚拟机系统中缺少gcc,执行下面命令安装gcc:yum -y install gcc automake autoconf libtool make

#如果使用make失败,致命错误:jemalloc/jemalloc.h: 没有那个文件或目录,则需要在make指定分配器为libc make MALLOC=libc
//make之后如果出现Hint: To run 'make test' is a good idea ;
//运行make test, 会提示需要安装tcl,执行yum install tcl


#执行下面命令安装redis,并指定安装目录
make install PREFIX=/usr/local/redis

5. 配置密码以及允许外网ip访问

1
2
3
4
5
6
7
8
9
10
#在redis.conf中配置requirepass 密码以及port端口号(非必须)
requirepass xxx
port 6379

#开启redis允许外网ip访问,在 Linux 中安装了redis 服务,当在客户端通过远程连接的方式连接时,报could not connect错误。错误的原因为:redis采用的安全策略,默认会只准许本地访问。
#将所有的bing信息全部屏蔽
#bind 192.168.1.100 10.0.0.1

#配置redis后台启动,如果不配置的话可以使用hohup启动
daemonize yes

6. 启动/关闭redis服务

1
2
3
4
5
6
cd ./src
nohup ./redis-server ../redis.conf &

#关闭
kill -9 pid
redis-cli shutdown

redis 命令参考

7. 查看redis进程

1
[root@localhost redis]# pstree

image-20201210103251475

8. 查看安装目录

目录介绍:

  • redis-benchmark: 性能测试工具
  • redis-check-apf: 修复有问题的AOF文件
  • redis-check-dump: 修复有问题的dump.rdb文件
  • redis-sentinel: redis集群使用
  • redis-server: redis 服务器启动命令
  • redis-cli: 客户端

9. redis相关知识

  • 默认端口:6379
  • 默认16个数据库,类似数组的下标从0开始,初始默认使用0号库
  • 使用select 来切换数据库,如:select 1 切换到第二个数据库
  • 统一密码管理,所有的库密码相同
  • dbsize: 查看当前数据库key的数量
  • flushdb: 清空当前库
  • flushall: 清空全部库

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

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

串行 VS 多线程+锁(memcached) VS 单线程+多路复用(redis)
与memcache三不同:支持多数据类型,支持持久化,单线程+多路复用

redis6.0中提供了多线程,命令解析和io数据读写这部分采用了多线程,而命令的执行还是采用的是单线程,多个客户端发送来的命令会在同一个线程去执行,相当于排队执行,效率极高。