二、Redis概述安装
- Redis是一个开源的key-value存储系统。
- 和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。
- 这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
- 在此基础上,Redis支持各种不同方式的排序。
- 与memcached一样,为了保证效率,数据都是缓存在内存中。
- 区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。
- 并且在此基础上实现了**master-slave(主从)**同步。
1. 应用场景
1.1 配合关系型数据库做高速缓存
- 高频次,热门访问的数据
- 分布式架构,做session共享
1.2 多样的数据结构存储持久化数据
2. Redis安装
- Redis 官方网站
- http://redis.io
- Redis 中文官方网站、
- http://redis.cn/
2.1 安装版本
-
6.2.1 for linux (redis-6.2.1.tar.gz)
-
不用考虑在Windows环境下对Redis的支持(一般都会使用linux)
2.2 安装步骤
-
下载安装最新版的gcc编译器
yum install gcc
-
查看gcc版本
gcc --version
-
下载Redis6压缩包 存放/opt目录
- 可以使用xftp工具
-
解压
tar -zxvf redis-6.2.1.tar.gz
-
进入redis-6.2.1目录
cd redis-6.2.1
-
编译:对Redis进行编译成c文件
make
如果没有准备好C语言编译环境,make会报错 致命错误:-Jemelloc/jemalloc.h: 没有那个文件
解决方案:还在当前目录下 执行 make distclean
-
安装
make install
安装成功
2.3 安装目录
默认安装目录:/usr/local/bin
-
cd /usr/local/bin 到bin目录
-
ls查看当前目录:
- redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何
- redis-check-aof:修复有问题的AOF文件,rdb和aof后面讲
- redis-check-dump:修复有问题的dump.rdb文件
- redis-sentinel:Redis集群使用
- redis-server:Redis服务器启动命令
- redis-cli:客户端,操作入口
2.4 前台启动(不推荐)
前台启动,命令行窗口不能关闭,否则服务器终止
在安装目录bin下:执行 redis-server 启动
ctrl + c 停止
2.5 后台启动(推荐)
2.5.1 启动方式
-
备份redis.conf 到 /etc/ 目录下
[root@zgq redis-6.2.1]# cp redis.conf /etc/redis.conf
-
进入etc目录,修改 redis.conf
daemonize no 改成 daemonize yes
[root@zgq redis-6.2.1]# cd /etc [root@zgq etc]# ls //可以发现已经存在 redis.conf [root@zgq etc]# vim redis.conf //进行更改
退出
-
启动
-
回到redis 的 安装目录/usr/local/bin下
-
执行 redis-server /etc/redis.conf
-
使用 **ps -ef | grep redis ** 查看redis的进程
[root@zgq etc]# cd /usr/local/bin [root@zgq bin]# redis-server /etc/redis.conf [root@zgq bin]# ps -ef | grep redis root 658341 1 0 10:47 ? 00:00:00 redis-server 127.0.0.1:6379 root 658371 649315 0 10:48 pts/0 00:00:00 grep --color=auto redis
-
2.5.2 客户端访问
安装目录下执行:redis-cli
[root@zgq bin]# redis-cli
127.0.0.1:6379>
多个端口可以:redis-cli -p6379
测试验证:ping命令
127.0.0.1:6379> ping
PONG
//代表正常状态
2.5.3 后台启动关闭
单实例关闭
-
方式一:在客户端中关闭
[root@zgq bin]# redis-cli 127.0.0.1:6379> shutdown not connected>
-
方式二:在外部关闭
[root@zgq bin]# redis-cli shutdown
-
方式三:杀掉redis进程
- kill -9 PID
[root@zgq bin]# redis-server /etc/redis.conf [root@zgq bin]# ps -ef | grep redis root 660897 1 0 11:29 ? 00:00:00 redis-server 127.0.0.1:6379 root 660907 649315 0 11:29 pts/0 00:00:00 grep --color=auto redis [root@zgq bin]# kill -9 660897
多实例关闭:
指定端口关闭:redis-cli -p 6379 shutdown
3. Redis介绍相关知识
Redis是单线程+多路IO复用技术
多路复用是指使用一个线程检查多个文件描述符的就绪状态,比如调用select和poll函数,传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞直到超时。得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行(比如使用线程池)
串行 VS 多线程+锁 VS 单线程+多路IO复用
(与Memcache三点不同: 支持多数据类型,支持持久化,单线程+多路IO复用)