一.简介
Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
优势
- 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
- 丰富的数据类型 – Redis支持二进制案例的 string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和 hash(哈希类型) 数据类型操作。
- 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
- 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
应用场景
1、数据缓存(提高访问性能)
查询概率》》 增删改的概率
将一些数据在短时间之内不会发生变化,而且它们还要被频繁访问,为了提高用户的请求速度和降低网站的负载,降低数据库的读写次数,就把这些数据放到缓存中。
2、会话缓存
session cache,主要适用于 session 共享 (string 类型)
3、排行榜/计数器
(NGINX+lua+redis 计数器进行 IP 自动封禁)(zset)
4、消息队列
(构建实时消息系统,聊天,群聊) (list)
5· 粉丝 (set)
- 用于存储对象 (hash)
二.Redis的安装
1.下载 redis的压缩包
2.开始安装的时候先安装 redis 所依赖的环境(有的话就不用安装)
yum -y install gcc-c++
3.解压redis
tar -zxvf redis-5.0.14.tar.gz
]
4.编译,进入 redis 解压目录,执行 make 命令编译
还可以指定路径
make PREFIX=/usr/redis install (如果不加prefix 默认安装到/usr/local下面)
(如果命令执行不成功,换为 make install PREFIX=/usr/redis )
5.启动
进入目录 /usr/redis 的bin下面,并且启动redis
启动成功!!!
redis 启动成功,但是这种启动方式需要一直打开窗口,不能进行其他操作,不太方便。
按 ctrl + c 可以关闭窗口
修改配置文件
我这里是下载解压里的配置文件redis.conf 把它给他复制到默认安装位置里/usr/redis/bin
后台启动设置
no 改为 yes #如果不想设置后台启动就不改
设置密码
requirepass yyl #配置密码 如果需要 客户端连接的话需要设置密码 如果不需要连接就不要设置
设置远程连接
# bind 127.0.0.1 #注释掉绑定本机,才可以远程连接访问
0.0.0.0 都可以访问
在/lib/systemd/system 目录下创建一个脚本文件 redis.service,里面的内容如下:
[Unit]
Description=Redis
After=network.target
[Service]
ExecStart=/usr/redis/bin/redis-server /usr/redis/bin/redis.conf
ExecStop=/usr/redis/bin/redis-cli -h 127.0.0.1 -p 6379 -a yyl shutdown
[Install]
WantedBy=multi-user.target
刚刚配置的服务需要让 systemctl 能识别,就必须刷新配置
systemctl daemon-reload 刷新配置
systemctl enable redis 开机自启
systemctl status redis redis 状态
systemctl start redis 开启 redis
systemctl stop redis 关闭 redis
systemctl disable redis 禁止开机自启
启动
./redis-server ./redis.conf
配置服务启动(使用 systemctl 的方法)
关闭 redis:
./redis-cli shutdown
使用远程连接软件: Another Redis Desktop Manager
连接成功!(有错的话一般都是配置有问题)
三.redis的使用
1.进入redis 目录/usr/redis/bin/
2.keys * 获取所有的键 还可以检查有没有密码或者密码错误
输入密码 auth XXX 或直接在连接的时候输入密码
3.查询有多少数据库 config get databases
4.选中某个数据库 select XXX
这是选中第一个 0-15
5.设值 取值
6.获取所有的键
7.查看当前数据库的 key 的数量 dbsize
8.清空当前库 flushdb
9.通杀全部库 flushall(了解就行,基本不用)
10.将当前的数据库 key 移动到某个数据库,目标库有,则不能移动 ( move key 1 )
11.从当前数据库中随机返回 randomkey
就是在当前数据库随机返回一个数据
12.查看类型 type key
13.删除 (del key)
删除 key
14.判断是否存在 (exists)
15.为给定的key设置过期时间 单位是秒(expire)
expire key 30
16.给定的key设置过期时间 单位:毫秒(pexpire)
pexpire key 1000
17.删除key的过期时间(persist)
persist key
18.查看还有多少秒过期,-1 表示永不过期,-2 表示已过期
ttl key