文章目录
什么是redis
- Redis全称为:Remote Dictionary Server(远程数据服务),使用C语言编写。Redis是一种支持key-value等多种数据结构的存储系统。可用于缓存,事件发布或订阅,高速队列等场景。
- 支持数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
- 基于内存,可持久化
官方资料
Redis官网:http://redis.io/
Redis官方文档:http://redis.io/documentation
Redis下载:http://redis.io/download
为什么要使用Redis
一个产品的使用场景肯定是需要根据产品的特性,先列举一下Redis的特点:
- 读写性能优异
。Redis能读的速度是110000次/s,写的速度是81000次/s (测试条件见下一节)。 - 数据类型丰富
。string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。 - 原子性
。Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。 - 丰富的特性
。Redis支持 publish/subscribe, 通知, key 过期等特性。 - 持久化
。Redis支持RDB, AOF等持久化方式 - 发布订阅
。edis支持发布/订阅模式 - 分布式
。Redis Cluster
1.redis用途
缓存数据分类:
- 实时数据同步缓存:数据库数据更新之后,redis中的数据会被清除,下一次查询之后再写入缓存
- 阶段性同步缓存:redis允许数据一段时间内与数据库中的数据保持不一致,,这时增加缓存过期时间,当缓存消失之后,再查询时写入缓存
2.redis缓存特性
- 性能极高: 读速度 11w/s , 写 8w/s,
–原因是数据操作是在内存中发生,
– c语言开发 - 简单稳定-源码很少,早起2w行 3.0版本支持集群,5w行
- 持久化 – 支持RDB和AOF
- 高可用集群- 主从集群
- 丰富的数据类型 string, list(链表), set(集合)、zset(有序集合)、哈希
- 客户端语言广泛
- 支持acl权限控制, redis6开始引入
- 支持多线程io模型 , 从6.0版本开始支持多线程,之前版本单线程
3.redis的io模型
3.1 单线程模型
3.2 多线程模型
内存响应时间:100ns
3.3 redis模型优缺点
单线程模型
- 优点
-1.
多线程模型
多路复用技术
多路复用的三种模型: select模型、poll模型、epoll模型
4.redis安装
docker pull redis
1)、挂载redis的配置文件
/home/redis/myredis/myredis.conf:/etc/redis/redis.conf
2)、挂载redis 的持久化文件(为了数据的持久化)。
/home/redis/myredis/data:/data 这个同上
–appendonly yes 开启redis 持久化
–requirepass 000415 设置密码 (如果你是通过docker 容器内部连接的话,就随意,可设可不设。但是如果想向外开放的话,一定要设置,我被搞过,可以看这篇文章“阿里云服务器中毒‘Kirito666’经历”)
docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name myredis -v /home/redis/myredis/myredis.conf:/etc/redis/redis.conf -v /home/redis/myredis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass 000415
3) 、进入容器
参考 auth: http://t.zoukankan.com/itjeff-p-6168823.html
docker exec -it containerid bash
redis-cli
auth 000415
redis配置文件启动
redis-server redis.conf
redis配置文件参数
# bind 127.0.0.1 默认0.0.0.0
daemonize yes //后台守护进程运行
requirepass 000415 //密码配置
rename-command flushall "" //禁止使用此命令,保证数据,防止误删
rename-command flushdb "" //禁止使用此命令
在这里插入代码片
redis配置详解
https://blog.csdn.net/qq_19007335/article/details/124885668
redis停止命令
redis-cli -a 000415 shutdown
或者
shutdown //登录redis后执行
redis数据删除命令
flushall
flushdb
redis-cli连接server
redis-cli -h ip -p port -a 000415
查看linux内核版本
查看somaxconn的值
生产环境为提高并发修改参数
/etc/sysctl.conf
sysctl -p #立即生效, 动态修改内核参数
查看cpu 数
lscpu