再识redis-2
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)
再识redis-2的更多相关文章
- 尚硅谷redis学习5-初识redis.conf
redis.conf是redis的配置文件,在解压后的redis安装文件夹下 单位 1 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit 2 对大小写不敏感 包含 ...
- 再谈Redis应用场景(转)
原文:在谈Redis应用场景 一.MySql+Memcached架构的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样 ...
- 别再用 Redis List 实现消息队列了,Stream 专为队列而生
上回说到使用 Redis 的 List 实现消息队列有很多局限性,比如: 没有良好的 ACK 机制: 没有 ConsumerGroup 消费组概念: 消息堆积. List 是线性结构,想要查询指定数据 ...
- 领导:谁再用redis过期监听实现关闭订单,立马滚蛋!
日前拜读阿牛老师的大作 领导:谁再用定时任务实现关闭订单,立马滚蛋! 发现其方案有若干瑕疵,特此抛砖引玉讨论一二. 在电商.支付等领域,往往会有这样的场景,用户下单后放弃支付了,那这笔订单会在指定的时 ...
- JS魔法堂:再识Number type
Brief 本来只打算理解JS中0.1 + 0.2 == 0.30000000000000004的原因,但发现自己对计算机的数字表示和运算十分陌生,于是只好恶补一下.以下是恶补后的成果: 基础野:细说 ...
- JS魔法堂:再识IE的内存泄露
一.前言 IE6~8除了不遵守W3C标准和各种诡异外,我想最让人诟病的应该是内存泄露的问题了.这阵子趁项目技术调研的机会好好的再认识一回,以下内容若有纰漏请大家指正,谢谢! 目录一大坨! 二.内存泄漏 ...
- C#再识委托
从C#1到C#3逐步认识委托,由于C#4与C#5对委托改动并不大,故不作说明. 好久没看.NET了,一直在搞HybridAPP,都忘得差不多了,这也是自己从书中摘下笔迹,供日后翻阅. C# 1 1.什 ...
- Play再识 - 不放弃的执着
从写Play初识时,前面各种称赞play如何如何解放java web开发,最后因为网络被墙而无法正常编译,从而想到放弃.从来都有成为web开发高手的想法,今天又再一次进行尝试,惊喜的是有新的进展. 首 ...
- [转]再识Cortex-M3之堆栈
原地址https://blog.csdn.net/liaoxu02/article/details/48107651 Cortex-M3拥有通用寄存器R0-R15以及一些特殊功能寄存器.R0-R12是 ...
- HDU2157 How many ways矩阵再识
春天到了, HDU校园里开满了花, 姹紫嫣红, 非常美丽. 葱头是个爱花的人, 看着校花校草竞相开放, 漫步校园, 心情也变得舒畅. 为了多看看这迷人的校园, 葱头决定, 每次上课都走不同的路线去教室 ...
随机推荐
- 作业详解及流程控制之for循环
作业详解及流程控制之for循环 目录 作业详解及流程控制之for循环 一.作业详解 1.根据用户输入内容打印其权限 2.编写用户登录程序 4.猜年龄的游戏 二.流程控制之for循环 三.while循环 ...
- Unity之详解Texture
[Texture]详解什么是Texture 前言 开篇废话 嗨咯大家好呀,时隔多日,小黑又和大家见面咯,最近懒癌犯了,而且技术上边倍受打击,所以回了家只想着睡觉休息,所以希望大家见谅见谅啦. Unit ...
- 读Java8函数式编程笔记03_高级集合类和收集器
1. 方法引用 1.1. 一种引用方法的轻量级语法 1.1.1. 提供了一种简短的语法 1.1.2. 标准语法为Classname::methodName 1.2. 凡是使用Lambda表达式的地方, ...
- immutable.js 学习笔记(三)----- Map
一.Map Map在原生的js中对应的是Object这样的结构,它都是key-value的键值对,并且它是无序的 二. API (一) set:设定值 (二)delete:删除值 每做一次增删改查都会 ...
- vue学习笔记(四)---- 品牌管理案例
一.导入相关包 <script src="../lib/vue2.6.10.min.js"></script> <script src=". ...
- Idea导入本地Mavenue项目
转https://www.cnblogs.com/kaola8023/p/14069519.html 一.导入Maven项目的问题 1. 安装后运行idea会直接打开如下页面 , 我们点击 Open ...
- sqlserver数据库批量新增修改类
MSSql Server 数据库批量操作 需要引用的命名空间 using System; using System.Collections.Generic; using System.Data; us ...
- ubuntu安装ROBOWARE
https://github.com/tonyrobotics/RoboWare/ https://blog.csdn.net/lixujie666/article/details/80139112 ...
- Windows家庭版安装本地组策略编辑器【gpedit.msc】
由于我们买的电脑一般默认安装的Windows家庭版本 家庭版本默认不带有本地组策略编辑器 当我们运行gpedit.msc的时候会提示 Winodws找不到文件'gpedit.msc'.请确定文件名是否 ...
- CF1638E Colorful Operations
\(\text{Solution}\) \(\text{code}\) #include <cstdio> #include <iostream> #include <s ...