redis 历史场景和应用环境
redis – kv数据库(key,value)
–东西全放内存中(读写性能特别好)
– 读写方式:单线程+异步 I/O (多路I/O复用–一条马路16车道)
例:python中一个web框架 tornado/node-js 也是单线程+异步I/o
计算密集型应用: 多进程+多线程
I/O密集型应用 :单线程+异步i/o(协程--微线程) (I/O操作--输入输出操作)
历史:2008年,一个人做了一个专门处理日志的网站–lloogg(log–记录网站访问记录)
他先使用 MySQL,后来发现网站性能遇到瓶颈,于是自己写了个数据库
redis – Remote Dictionary server 简称redis ,远程的字典式服务
redis之前memcached和redis性能差不多,但是redis能做的更多;
redis功能:
数据分类:
冷数据: 不常使用
热数据:经常使用
```c
1. 高速缓存服务(用户经常访问的数据从数据库搬到内存 (访问内存比访问数据库快))
2. 实时排行榜(全网实时排行榜)
3. 投票点赞
4. 消息队列
优化网站从:高速缓存和消息队列
redisde 两种存储方式 .alf .rdb
Redis 配置和启动服务
(源码安装,yum安装的版本旧)
linux环境下:
redis-server 服务器
redis-cli 客户端工具
启动redis-cli 客户端
redis-cli -h 主机ip地址 -p 端口
主机:端口>auth 密码
主机:端口> 进入客户端
~netstat -nap| grep redis 查看redis运行hzuangtai
~ redis-server & 后台启动redis服务器
~ redis-server --port 4444 & redis默认运行端口为 6379,将其更改在端口
4444(这个端口不向公网开放)
~ redis-server > redis.log & 重定向(不想看redis输出)
~ redis-server --requirepass 123qwe > redis.log & (启动时)设口令 密码
~ jobs 查看后台运行的进程
~ kill 1818 杀掉1818进程
启动服务器时启动设置的修改:
~ redis-server 配置文件 >redis.log & 启动时设置按照配置文件中的配置而配置
redis默认的配置文件 redis-5.0.4/redis-configure
vim + 配置文件名 进入配置文件
vim末行模式下 : 关键
里边内容简介:
port 6379
batabase 16 --启动服务器时默认创建16个数据库
save 90 1 90秒内1个键值对发生变化自动保存
save 300 10 300秒内10个键值对发生变化自动保存
save 60 10000 默认60分钟时10000个键值对发生变化-自动保存
daemonlize no 要不啊、要做成守护进程
修改启动配置可以在配置文件中直接修改
redis基础操作语句
-
连接客户端
-
redis-cli 默认自己主机
~redis-cli -h 120.12.129.11 连接指定主机
~redis-cli -h 120.123.12.32 -p 1234 连接指定主机的指定端口(默认端口6397已被改的情况下)
连接语句+enter 后,需要输入口令-认证身份(auth+密码)
即之前设置的requirepass ,连接成功后输入:ping会返回pong,
若无返回,则连接未成功;
-
redis全部以键值对的形式存储数据,而且全部放在内存中;
- set key value 放数据
- get key 取数据 ~set username liam 输入数据(键值) 永久有效
- set username liam ex 30 输入数据,30 s内有效(时间到了,自动消失)
~set 13994567823 3456 ex 300 300秒有效
~ttl 13994567823 查看键13994567823还有多少存活时间
~redis-benchmark redis的基本性能测试(rerdis最优处–高速缓存数据,读写性能非常优秀)