再识redis-2
2024-09-08 19:22:22
Redis初识
特点关键字:
- 高性能Key-Value服务器
- ops能达到十万级别
- 每秒能执行约11万集合
- 每秒约81000-条记录
- 主要数据结构
- 列表
- 集合
- 有序集合
- 散列(别名哈希 Redis的哈希是键值对的集合。 Redis的哈希值是字符串字段和字符串值之间的映射,因此它们被用来表示对象)
- 字符串
- 丰富的功能
- 慢查询
- 发布订阅
- GEO(地理位置)
- 位图
- 持久化
- 高可用分布式支持
- 集群
- 主从复制
- 哨兵机制
- Redis Cluster(v3.0以上)
- Redis-Sentinel(v2.8以上)
Redis经典应用场景
- 缓存系统
- 计数器
- 消息队列系统
- 排行榜
- 购物车
- 并发网络
- 实时系统(布隆过滤器)
- 社交聊天(粉丝 关注 点赞)
Redis安装
- Linux安装 https://segmentfault.com/a/1190000016012597
- Windows安装 https://www.runoob.com/redis/redis-install.html
- macOS安装 如Linux安装
Redis文件说明
- redis-server Redis服务器
- redis-cli Redis命令行客户端
- redis-benchmark Redis性能测试工具
- redis-check-aof AOF文件修复工具 用于修复损坏的文件
- redis-check-dump RDB文件修复工具
- redis-sentinel 高可用解决方案
Redis 启动
最简启动Redis
直接运行redis-server命令方式
动态参数启动Redis
比如: redis-server --port 6666redis-server configPath(使用配置文件启动)
注:生产环境推荐配置启动 单机用多实例配置文件 可以用端口区分开 实现多端口集群
Redis客户端返回值类型说明
- 状态回复:pong
- 错误回复:WRONGTYPE Operation against
- 整数回复:1
- 字符串回复:“world”
- 多行字符串回复:
“world”
“bat”
Redis常用配置
- daemonize 是否是守护进程启动
- port 端口号指定
- logfile 系统日志文件
- dir 工作目录
注:为什么Redis默认端口是6379 因为在老式按键机上9键的6379对应MERZ而MERZ取之于意大利女歌手Alessia MErz的名字
Redis 常用命令
- keys * 遍历所有的key (*就是通配符)时间复杂度为O(n)
可以 keys *he 查询所有以he后缀的key
注:一般生产环境key比较多 keys打印的也会多,也会很慢,所以不推荐在生产环境使用 - dbsize 计算key的总数 时间复杂度为O(1)
- exists key (key 为输入的key值) 检查key是否存在 时间复杂度为O(1)
- del key (key为指定的key-value) 删除指定的key-value 成功删除返回1 否则0 时间复杂度为O(1)
- expire key seconds (key在seconds秒后过期) 时间复杂度为O(1)
- ttl key 查看key剩余的过期时间 返回值为-2 代表key已经不存在了 -1代表key存在 并且没有过期时间 时间复杂度为O(1)
- persist key 去掉key的过期时间 时间复杂度为O(1)
- type key (返回key的类型) 时间复杂度为O(1)
最新文章
- Android Studio配置 AndroidAnnotations——Hi_博客 Android App 开发笔记
- .net常见的面试题
- HDU 5937 Equation
- memcache的安装和使用
- jquery实现nav的下拉
- 单源最短路_SPFA_C++
- dmucs与distcc
- JavaScript高级程序设计18.pdf
- toj4119HDFS
- java抽象类和接口的区别(转载)
- 实例学习SSIS(四)--使用日志记录和错误流重定向
- Redis学习-发布/订阅
- 基于GCC的openMP学习与测试(2)
- js的原型
- 51Nod 1293 球与切换器 DP分类
- Python爬虫之urllib模块2
- rocketmq番外篇(一):开发命令行
- linux2.6.37内核接两个硬盘导致读写效率变低的问题
- token.go
- 二叉搜索树(BST)学习笔记
热门文章
- java入门与进阶P-6.1+P-6.2
- 结对项目总结 -- 基于Qt开发的win10桌面应用
- 数据湖Hudi与对象存储Minio及Hive\Spark\Flink的集成
- Node.js学习笔记----day05(在Node中操作MySQL)
- 真正“搞”懂HTTP协议10之缓存控制
- HTTP协议拓展
- SpringBoot+Vue前后端分离项目,在过滤器取值为Null
- 计算机网络基础08 Socket网络通信
- windows10环境下的RabbitMQ安装步骤
- C# 编写Windows Service Windows服务程序