redis 初识
redis 是一个开源 产品 , 是一种键值对存储形式的数据库 , 他的值可以是多种数据类型如数字,字符串,列表等
redis的特性
1 支持持久化存储 - 主要是会对数据异步存储在磁盘上, 这里利用的技术主要rdb , aof
2 支持多种数据类型 - 如字符串, 列表, 哈希,集合,有序集合
3 支持多种语言
4 速度快 - 主要是因为redis 的数据是存放在内存中的
5 实现主从复制 - 为高可用和分布式都提供了一个好的基础
6 支持高可用,分布式结构
7 多种使用场景 - 消息队列 , 计数器 , 缓存
8 单线程服务 , 一次只能执行一条命令
redis 相关概念:
redis-server :redis服务器
redis-cli : redis 的命令工具
redisbenchmark : redis的性能测试工具
redis-check-aof : aof 修复工具
redis-check-dump : rdb 修复工具
redis-sentinel : 2.8版本智慧提供sentinel服务器
redis-cluster : 3.0版本提供的redis 集群
redis 常用配置有:
daemonzie : 默认是no 一般改为yes 是以守护进程启动
port : 服务监控的端口 默认6379
dir : redis 的工作目录
logfile : 日志目录
redis的几中功能介绍
1 慢查询 : 在执行命令过程中很慢
两个配置
当一个命令查看超过多久就会进入到慢查询的队列, 这个队列是个固定长度的, 先进先出, 这个队列是保存在内存当中的
1 slowlog-max-len 默认值128
2 slowlog-log-slower-than : 阈值, 若为0 则所有记录在慢查询队列 默认10000微妙也就是10毫秒
命令:
> configset : 动态配置配置参数
> slowlog get : 获取慢查询队列
> slowlog len : 获取慢查询队列长度
> slowlog reset : 将慢查询队列清空
2 pipeline 流水线 : 是对多个命令的打包, 一次性发送给服务器,这样减少了网络的耗时
3 消息发布订阅
> PUBLISH news hello 发布消息hello 生产者生产消息
>SUBSCRIBE news 订阅 消费者取订阅消息 当没有消息会在阻塞
> unsubcribe news : 取消订阅
4 bitmap 位图 - 为了节省内存
5 hyperloglog : 一种新的数据类型, 用户统计合并 内存消耗小 , 缺点是有时候会有错误概率0.81%
命令:
> pfadd key 值1 值2 : 添加值
> pfcount key : 返回key中含有的元素
> pfmerge key1 key2 key_new :将key1 与key2 合并
6 GEO : 是用于地理位置定位统计,3.2版本中提供的
命令:
> geoadd key2 116.28 39.55 beijing : 添加 北京的经度纬度
> geopos key2 beijing : 获取北京的经度纬度
> geodist key2 beijing tianjing : 获取北京 天津两地的距离