Redis初识

特点关键字:

  1. 高性能Key-Value服务器

    • ops能达到十万级别
    • 每秒能执行约11万集合
    • 每秒约81000-条记录
  2. 主要数据结构
    • 列表
    • 集合
    • 有序集合
    • 散列(别名哈希 Redis的哈希是键值对的集合。 Redis的哈希值是字符串字段和字符串值之间的映射,因此它们被用来表示对象)
    • 字符串
  3. 丰富的功能
    • 慢查询
    • 发布订阅
    • GEO(地理位置)
    • 位图
    • 持久化
  4. 高可用分布式支持
    • 集群
    • 主从复制
    • 哨兵机制
    • Redis Cluster(v3.0以上)
    • Redis-Sentinel(v2.8以上)

Redis经典应用场景

  1. 缓存系统
  2. 计数器
  3. 消息队列系统
  4. 排行榜
  5. 购物车
  6. 并发网络
  7. 实时系统(布隆过滤器)
  8. 社交聊天(粉丝 关注 点赞)

Redis安装

  1. Linux安装 https://segmentfault.com/a/1190000016012597
  2. Windows安装 https://www.runoob.com/redis/redis-install.html
  3. macOS安装 如Linux安装

Redis文件说明

  1. redis-server Redis服务器
  2. redis-cli Redis命令行客户端
  3. redis-benchmark Redis性能测试工具
  4. redis-check-aof AOF文件修复工具 用于修复损坏的文件
  5. redis-check-dump RDB文件修复工具
  6. redis-sentinel 高可用解决方案

Redis 启动

  1. 最简启动Redis

    直接运行redis-server命令方式

  2. 动态参数启动Redis
    比如: redis-server --port 6666

  3. redis-server configPath(使用配置文件启动)

注:生产环境推荐配置启动 单机用多实例配置文件 可以用端口区分开 实现多端口集群

Redis客户端返回值类型说明

  1. 状态回复:pong
  2. 错误回复:WRONGTYPE Operation against
  3. 整数回复:1
  4. 字符串回复:“world”
  5. 多行字符串回复:
    “world”
    “bat”

Redis常用配置

  1. daemonize 是否是守护进程启动
  2. port 端口号指定
  3. logfile 系统日志文件
  4. dir 工作目录

注:为什么Redis默认端口是6379 因为在老式按键机上9键的6379对应MERZ而MERZ取之于意大利女歌手Alessia MErz的名字

Redis 常用命令

  1. keys * 遍历所有的key (*就是通配符)时间复杂度为O(n)
    可以 keys *he 查询所有以he后缀的key
    注:一般生产环境key比较多 keys打印的也会多,也会很慢,所以不推荐在生产环境使用
  2. dbsize 计算key的总数 时间复杂度为O(1)
  3. exists key (key 为输入的key值) 检查key是否存在 时间复杂度为O(1)
  4. del key (key为指定的key-value) 删除指定的key-value 成功删除返回1 否则0 时间复杂度为O(1)
  5. expire key seconds (key在seconds秒后过期) 时间复杂度为O(1)
  6. ttl key 查看key剩余的过期时间 返回值为-2 代表key已经不存在了 -1代表key存在 并且没有过期时间 时间复杂度为O(1)
  7. persist key 去掉key的过期时间 时间复杂度为O(1)
  8. type key (返回key的类型) 时间复杂度为O(1)

最新文章

  1. Android Studio配置 AndroidAnnotations——Hi_博客 Android App 开发笔记
  2. .net常见的面试题
  3. HDU 5937 Equation
  4. memcache的安装和使用
  5. jquery实现nav的下拉
  6. 单源最短路_SPFA_C++
  7. dmucs与distcc
  8. JavaScript高级程序设计18.pdf
  9. toj4119HDFS
  10. java抽象类和接口的区别(转载)
  11. 实例学习SSIS(四)--使用日志记录和错误流重定向
  12. Redis学习-发布/订阅
  13. 基于GCC的openMP学习与测试(2)
  14. js的原型
  15. 51Nod 1293 球与切换器 DP分类
  16. Python爬虫之urllib模块2
  17. rocketmq番外篇(一):开发命令行
  18. linux2.6.37内核接两个硬盘导致读写效率变低的问题
  19. token.go
  20. 二叉搜索树(BST)学习笔记

热门文章

  1. java入门与进阶P-6.1+P-6.2
  2. 结对项目总结 -- 基于Qt开发的win10桌面应用
  3. 数据湖Hudi与对象存储Minio及Hive\Spark\Flink的集成
  4. Node.js学习笔记----day05(在Node中操作MySQL)
  5. 真正“搞”懂HTTP协议10之缓存控制
  6. HTTP协议拓展
  7. SpringBoot+Vue前后端分离项目,在过滤器取值为Null
  8. 计算机网络基础08 Socket网络通信
  9. windows10环境下的RabbitMQ安装步骤
  10. C# 编写Windows Service Windows服务程序