## 配置
1. 获取某一项配置`CONFIG GET CONFIG_SETTING_NAME`
2. 获取所有配置`config get *`
3. 修改配置`CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE`
4. 参数说明
5. 查看redis安装目录`CONFIG GET dir`
5.
| 配置项 | 说明 |
| --- | --- |
| daemonize no | Redis 默认不是以守护进程的方式运行,可以通过该配置项修改,使用 yes 启用守护进程(Windows 不支持守护线程的配置为 no |
| pidfile /var/run/redis.pid | 记录守护进程的pid |
| port 6379 | 指定端口 |
| bind 127.0.0.0 | 绑定主机地址 |
| timeout 300 | 当客户端闲置多长时间后关闭连接,如果指定为 0,表示关闭该功能 |
| loglevel notice | 修改日志级别(debug、verbose、notice、warning) |
| logfile stdout | 日志记录方式,默认为标准输出,如果配置 Redis 为守护进程方式运行,而这里又配置为日志记录方式为标准输出,则日志将会发送给 /dev/null |
| databases 16 | 设置数据库的数量,默认数据库为0,可以使用SELECT命令在连接上指定数据库id |
| | |
## 数据类型
1. set key value
2. get key
3. del key
4. 判断键是否存在`EXISTS key`
5. 给键设置过期时间 `EXPIRE key seconds`
### string
1. 一个键最多能存储512M
2. 二进制安全
### Hash(哈希)
键值对集合
~~~
HMSET runoob field1 "Hello" field2 "World"
HGET runoob field1
~~~
### List(列表)
简单的字符串列表,按照插入顺序排序
~~~
lpush runoob redis
lrange runoob 0 10
~~~
### Set(集合)
string类型的无序集合
集合内元素的唯一性,第二次插入的元素将被忽略
~~~
sadd runoob redis
smembers runoob
~~~
### zset(sorted set:有序集合)
string类型元素的集合,且不允许重复的成员
每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序成员是唯一的,但分数(score)却可以重复
~~~
zadd runoob 0 redis
ZRANGEBYSCORE runoob 0 1000
~~~
### HyperLogLog(基数)
去重,计数
```
pfadd key value
pfcount key
```
## 订阅
创建频道`SUBSCRIBE redisChat`
给频道发消息`PUBLISH redisChat "Redis is a great caching technique"`
## 备份和恢复
备份`save`、`BGSAVE`
恢复:只需将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可
### 缓存雪崩
过期时间相同,大批缓存同时过期产生
### 缓存穿透
数据库中没有的数据,缓存中自然也没有,导致每次都去数据库查
### 缓存击穿
热点数据,在缓存过期时突然大量请求进来,导致数据库奔溃
## 优化
### 缩短键值对的存储长度
### 使用lazy free(延迟删除)特性
### 设置键值对的过期时间
### 禁用长耗时的查询命令
### 使用slowlog优化耗时命令
### 使用Pipeline批量操作数据
### 避免大量数据同时失效
### 客户端使用优化
### 限制Redis内存大小
### 使用物理机,不用虚拟机
### 检查数据持久化策略
### 禁用THP特性
### 使用分布式架构增加读写速度
- php
- 安全
- php7
- 特性
- 编译安装
- 源码整体框架
- 基本变量
- thinkphp3.2.3
- thinkphp5.0
- thinkphp6.0
- laravel
- 配置
- 路由
- artisan控制台
- eloquent
- tinker
- composer
- 加密解密
- 小知识点
- 数组
- string
- 代码简洁之道
- 编译
- 语法糖
- lumen
- smarty
- 错题集
- 算法及数据结构
- 线性表结构
- 插入排序
- 冒泡排序
- 数据库
- mysql
- oracle
- PostgreSQL
- redis
- sqlserver
- 前端
- 备忘
- js
- nodejs
- vue
- css
- electron
- vue
- 语法糖
- colorui使用笔记
- 微信小程序
- 操作系统
- windows
- bat
- 快捷键
- linux
- sed
- 问题解决
- git
- docker
- docker-compose
- 正则表达式
- ps
- lua
- 协议相关
- 问题思索
- Golang
- 测试
- 读取和写入json配置文件
- 类
- 接口
- mod
- gin
- fyne
- 禅道二次开发
- 服务
- apache
- 漏洞配置
- http server优化
- nginx
- 安装
- 面试题库
- freeswitch