目录
- Redis概述
- Redis应用场景
-
- 配合关系型数据库做高速缓存
- 多样的数据结构存储持久化数据
- Redis安装
-
- 1、安装 gcc 编译器
- 2、下载并安装 Redis
- 3、安装目录:/usr/local/bin
- 4、启动/关闭 redis server
- Redis是单线程+多路IO复用技术
Redis概述
Redis是一个开源的key-value存储系统。
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。
和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。
这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
在此基础上,Redis支持各种不同方式的排序。
与memcached一样,为了保证效率,数据都是缓存在内存中。
区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。
并且在此基础上实现了master-slave(主从)同步。
Redis应用场景
配合关系型数据库做高速缓存
高频次,热门访问的数据,降低数据库IO
分布式架构,做session共享

多样的数据结构存储持久化数据
Redis安装
1、安装 gcc 编译器
# 安装 C 语言的编译环境
yum install centos-release-scl scl-utils-build
yum install -y devtoolset-8-toolchain
scl enable devtoolset-8 bash
# 测试 gcc版本
gcc --version
2、下载并安装 Redis
Redis官方网站:http://redis.io
Redis中文官方网站:http://redis.cn/
1、官网下载 redis-6.2.1.tar.gz 后放 /opt 目录
2、解压安装 redis-6.2.1.tar.gz
# 解压命令:
tar -zxvf redis-6.2.1.tar.gz
# 解压完成后进入目录:
cd redis-6.2.1
# 在redis-6.2.1目录下再次执行make命令(只是编译好)
make install
如果没有准备好C语言编译环境,make 会报错—Jemalloc/jemalloc.h:没有那个文件
# 解决方案:执行命令make distclean后,在redis-6.2.1目录下再次执行make install命令(只是编译好)
3、安装目录:/usr/local/bin
查看默认安装目录:
redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何
redis-check-aof:修复有问题的AOF文件,rdb和aof后面讲
redis-check-dump:修复有问题的dump.rdb文件
redis-sentinel:Redis集群使用
redis-server:Redis服务器启动命令
redis-cli:客户端,操作入口
4、启动/关闭 redis server
- 前台启动:
# 前台启动(不推荐),命令行窗口不能关闭,否则服务器停止 redis -server
-
后台启动:
1、备份redis.conf
# 复制一份 redis.conf 到其他目录 cp /opt/redis-3.2.5/redis.conf /myredis
2、修改redis.conf(128行):后台启动设置daemonize no改成yes
3、Redis 启动
4、测试验证# 启动 redis redis-server /myredis/redis.conf
5、Redis关闭# 访问 redis redis-cli # 端口访问 redis redis-cli -p6379 [[email protected] bin]# redis-cli 127.0.0.1: 6379> 127.0.0.1: 6379> ping PONG
# 单实例关闭: redis-cli shutdown # 指定端口关闭: redis-cli -p 6379 shutdown # 也可以进入终端后再关闭 redis-server /myredis/redis.conf shutdown
Redis是单线程+多路IO复用技术
端口6379从何而来:
默认16个数据库,类似数组下标从0开始,初始默认使用0号库
使用命令 select <dbid> 来切换数据库。如: select 8
统一密码管理,所有库同样密码。
dbsize :查看当前数据库的key的数量
flushdb :清空当前库
flushall :通杀全部库
Redis是单线程+多路IO复用技术。
多路复用是指使用一个线程来检查多个文件描述符(Socket)的就绪状态,比如调用select和poll函数,传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞直到超时。得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行(比如使用线程池)
串行 vs 多线程+锁(memcached) vs 单线程+多路IO复用(Redis):
(与Memcache三点不同: 支持多数据类型,支持持久化,单线程+多路IO复用)