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)

再识redis-2的更多相关文章

  1. 尚硅谷redis学习5-初识redis.conf

    redis.conf是redis的配置文件,在解压后的redis安装文件夹下 单位 1  配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit    2  对大小写不敏感 包含 ...

  2. 再谈Redis应用场景(转)

    原文:在谈Redis应用场景 一.MySql+Memcached架构的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样 ...

  3. 别再用 Redis List 实现消息队列了,Stream 专为队列而生

    上回说到使用 Redis 的 List 实现消息队列有很多局限性,比如: 没有良好的 ACK 机制: 没有 ConsumerGroup 消费组概念: 消息堆积. List 是线性结构,想要查询指定数据 ...

  4. 领导:谁再用redis过期监听实现关闭订单,立马滚蛋!

    日前拜读阿牛老师的大作 领导:谁再用定时任务实现关闭订单,立马滚蛋! 发现其方案有若干瑕疵,特此抛砖引玉讨论一二. 在电商.支付等领域,往往会有这样的场景,用户下单后放弃支付了,那这笔订单会在指定的时 ...

  5. JS魔法堂:再识Number type

    Brief 本来只打算理解JS中0.1 + 0.2 == 0.30000000000000004的原因,但发现自己对计算机的数字表示和运算十分陌生,于是只好恶补一下.以下是恶补后的成果: 基础野:细说 ...

  6. JS魔法堂:再识IE的内存泄露

    一.前言 IE6~8除了不遵守W3C标准和各种诡异外,我想最让人诟病的应该是内存泄露的问题了.这阵子趁项目技术调研的机会好好的再认识一回,以下内容若有纰漏请大家指正,谢谢! 目录一大坨! 二.内存泄漏 ...

  7. C#再识委托

    从C#1到C#3逐步认识委托,由于C#4与C#5对委托改动并不大,故不作说明. 好久没看.NET了,一直在搞HybridAPP,都忘得差不多了,这也是自己从书中摘下笔迹,供日后翻阅. C# 1 1.什 ...

  8. Play再识 - 不放弃的执着

    从写Play初识时,前面各种称赞play如何如何解放java web开发,最后因为网络被墙而无法正常编译,从而想到放弃.从来都有成为web开发高手的想法,今天又再一次进行尝试,惊喜的是有新的进展. 首 ...

  9. [转]再识Cortex-M3之堆栈

    原地址https://blog.csdn.net/liaoxu02/article/details/48107651 Cortex-M3拥有通用寄存器R0-R15以及一些特殊功能寄存器.R0-R12是 ...

  10. HDU2157 How many ways矩阵再识

    春天到了, HDU校园里开满了花, 姹紫嫣红, 非常美丽. 葱头是个爱花的人, 看着校花校草竞相开放, 漫步校园, 心情也变得舒畅. 为了多看看这迷人的校园, 葱头决定, 每次上课都走不同的路线去教室 ...

随机推荐

  1. Translent关键字-InvalidClassException异常_原理和解决方案

    Translent关键字 static关键字:静态关键字静态优先于非静态加载到内存中(静态优先于对象进入到内存中)被static修饰的成员变量不能被序列化的,序列化的都是对象private stati ...

  2. HashSet集合存储数据的结构(哈希表)-Set集合存储元素不重复的原理

    HashSet集合存储数据的结构(哈希表) 在JDK1.8之前,哈希表底层采用数组+链表实现,即使用链表处理冲突,同一hash值的链表都存储在一个链表里.但是当位于一个桶中的元素较多,即hash值相等 ...

  3. 穿透的switch语句-循环概述与基本组成部分

    穿透的switch语句 在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运 行,直到遇到break,或者整体switch结束. pu ...

  4. 下一代编解码技术Ali266在视频超高清领域的应用展望

    超高清与各领域的需求融合和创新正在发生. 2022年是一个体育大年,众多世界级体育赛事通过视频直播.转播等形式给观众带来畅爽的观看体验. 2022年北京冬奥会,实现了奥运会历史上首次赛事全程4K制作播 ...

  5. C#Autofac依赖注入批量注入 (目前版本.netcore3.0)

    上一文:C#依赖注入一看就会系列 链接:C#依赖注入(直白明了)讲解 一看就会系列 - 22222220 - 博客园 (cnblogs.com) 上一次我们知道了 为什么要依赖注入,这次我们就用使用人 ...

  6. FAQ Selenium中提示can not connect to the service chromedriver 的解决方法

    can not connect to the service chromedriver问题的处理 背景 一个同学反馈运行如下代码  from selenium import webdriver     ...

  7. drf-restful规范、django原生编写接口

    1.restful规范 REST全称是Representational State Transfer,中文意思是表述:表征性状态转移,它首次出现在2000年Roy Fielding的博士论文中.RES ...

  8. C-09\编译预处理

    一.预处理 C语言在对源程序进行正常编译之前,会先对一些特殊的预处理命令作解释,产生一个新的源程序,该过程称为编译预处理 为了区分预处理命令和一般的C语句,所有预处理命令行都以"#" ...

  9. Netty进阶

    1.Netty问题 TCP协议都存在着黏包和半包问题,但是UDP没有 1.粘包现象 发送方分10次发送,接收方一次接受了10次发送的消息 2.半包现象 调整服务器的接受缓冲区大小(调小) 半包会导致服 ...

  10. 学习Java Day7

    今天学习了if语句和C/C++基本无差异,也再次练了一下Java的输入