Redis之入门概括与指令
Redis特点(AP模型,优先保证可用,不会管数据丢失):
快的原因:
基于内存操作,操作不需要跟磁盘交互
k-v结构,类似与hashMap,所以查询速度非常快,接近O(1)。
底层数据结构是有如:跳表(节省内存,不需要节省IO操作)、SDS
通信使用lO多路复用,单个线程中通过记录跟踪每一个sock(I/O流) 的状态来 管理多个I/O流
单线程的原因是因为它执行的速度比线程切换的速度还快。
高可用:
完善的内存管理机制:过期,淘汰,持久化
主从,sentinel,cluster集群
Redis常用基础命令
set key value 设置值
get key 取值
flushall 清空实例下所有的数据(删库跑路)
flushdb 清空当前数据库
keys * 查看所有的key(生产环境慎用,因为是单线程的,而且不知道有多少个key,容易导致线程阻塞掉)
expire key 10 对key设置过期时间
exists key 查看key是否存在,1:在。2:不在
del key 删除
type key 查看对外的类型
Redis的数据类型(只讲常见的6种)以及使用场景
String
使用场景:
过期属性:缓存,token
incr:计数相关的,如点赞数,评论数,分布式ID,库存。因为没有线程安全问题。
string的最大内存值 512M
|
指令 |
描述 |
|
SET key value |
设置键key的值为value。 |
|
GET key |
获取键key的值。 |
|
DEL key |
删除键key。 |
|
INCR key |
将键key存储的数字值增一。 |
|
DECR key |
将键key存储的数字值减一。 |
|
APPEND key value |
将value追加到键key的现有值的末尾。 |
|
SETNX key value |
只有在键key不存在时,将键key的值设置为value。 |
|
SETEX key seconds value |
将键key的值设置为value,并将键key的过期时间设置为seconds秒。 |
|
SETRANGE key offset value |
从偏移量offset开始,用value覆盖键key的值。 |
|
STRLEN key |
返回键key的值的长度。 |
|
GETRANGE key start end |
获取键key的字符串中,指定区间内的子串。 |
|
SETXX key value |
只有在键key存在时,才设置键key的值为value。 |
Hash
使用场景:
缓存对象型的数据
统计型的数据
基本的指令:k k v
|
指令 |
描述 |
|
HSET key field value |
为哈希表key中的字段field设置值value。 |
|
HGET key field |
返回哈希表key中指定字段field的值。 |
|
HDEL key field |
删除哈希表key中的一个或多个指定字段,不存在的字段将被忽略。 |
|
HGETALL key |
返回哈希表key中,所有的字段和值。 |
|
HKEYS key |
返回哈希表key中所有字段的名字。 |
|
HVALS key |
返回哈希表key中所有字段的值。 |
|
HEXISTS key field |
查看哈希表key中,指定的字段field是否存在。 |
|
HINCRBY key field increment |
为哈希表key中的字段field的值加上增量increment。 |
|
HINCRBYFLOAT key field increment |
为哈希表key中的字段field的值加上增量increment(浮点数)。 |
|
HLEN key |
返回哈希表key中字段的数量。 |
|
HMGET key field1 [field2 ...] |
返回哈希表key中,一个或多个给定字段的值。 |
|
HMSET key field1 value1 [field2 value2 ...] |
同时将多个field-value (字段-值)对设置到哈希表key中。 |
|
HSETNX key field value |
只有在字段field不存在时,设置哈希表字段的值。 |
List
特点&使用场景:
双端队列
如果键不存在,会创建新的链表
所有的有序列表都能做,时间线的列表
也能用来做消息队列,但是没有ack机制,一般会用更完善的消息队列如kafka
|
指令 |
描述 |
|
LPUSH key value |
将一个或多个值插入到列表头部。如果key不存在,创建新列表并执行LPUSH操作。 |
|
RPUSH key value |
将一个或多个值插入到列表尾部。如果key不存在,创建新列表并执行RPUSH操作。 |
|
LPOP key |
移除并返回列表的第一个元素。 |
|
RPOP key |
移除并返回列表的最后一个元素。 |
|
LRANGE key start stop |
获取列表指定范围内的元素。 |
|
LINDEX key index |
获取列表中指定索引的元素。 |
|
LLEN key |
返回列表长度。 |
|
LSET key index value |
将列表key的索引index处的值设置为value。 |
|
LREM key count value |
移除列表中与参数value相等的元素。 |
|
BLPOP key1 [key2] timeout |
从左侧弹出列表的第一个元素,如果列表为空则阻塞,直到等待超时或发现可弹出元素为止(不会阻塞)。 |
|
BRPOP key1 [key2] timeout |
从右侧弹出列表的第一个元素,如果列表为空则阻塞,直到等待超时或发现可弹出元素为止(不会阻塞)。 |
|
RPOPLPUSH source destination |
移除列表的最后一个元素,并将该元素添加到另一个列表并返 |
Set
特点&应用场景
无序的集合(全部整型的时候是有序的)
关注,点赞,抽奖等
|
指令 |
描述 |
|
SADD key member |
向集合添加一个或多个成员。如果成员已存在,则忽略。 |
|
SMEMBERS key |
返回集合中的所有成员。 |
|
SREM key member |
移除集合中一个或多个成员。 |
|
SISMEMBER key member |
检查成员元素是否是集合的成员。 |
|
SCARD key |
返回集合中元素的数量。 |
|
SINTER key1 [key2] |
返回所有给定集合的交集。 |
|
SUNION key1 [key2] |
返回所有给定集合的并集。 |
|
SDIFF key1 [key2] |
返回第一个集合与其他集合之间的差集。 |
|
SINTERSTORE destination key1 [key2] |
将交集存储在destination集合中。 |
|
SUNIONSTORE destination key1 [key2] |
将并集存储在destination集合中。 |
|
SDIFFSTORE destination key1 [key2] |
将差集存储在destination集合中。 |
|
SMOVE source destination member |
将成员从source集合移动到destination集合。 |
|
SRANDMEMBER key [count] |
从集合中随机返回一个或多个元素。 |
|
SPOP key [count] |
从集合中随机移除并返回一个或多个元素。 |
sortset
特点&应用场景
有序,不可重复。会有score字段来排序,如果score相同,根据key来简单的指令
排行榜
|
指令 |
描述 |
|
ZADD key score member |
将一个成员及其分数值加入到有序集当中。如果该成员已存在,则更新其分数。 |
|
ZSCORE key member |
返回有序集key中,成员member的分数值。 |
|
ZRANGE key start stop [WITHSCORES] |
返回有序集key中,指定区间内的成员。 |
|
ZREVRANGE key start stop [WITHSCORES] |
返回有序集key中,指定区间内的成员,按分数值逆序排列。 |
|
ZRANGEBYSCORE key min max [WITHSCORES] |
返回有序集key中,所有分数值介于min和max之间的成员。 |
|
ZREVRANGEBYSCORE key max min [WITHSCORES] |
返回有序集key中,所有分数值介于max和min之间的成员,按分数值逆序排列。 |
|
ZREM key member |
移除有序集key中的一个或多个成员。 |
|
ZCARD key |
获取有序集key的成员数量。 |
|
ZCOUNT key min max |
返回有序集key中,分数值在min和max之间的成员的数量。 |
|
ZINCRBY key increment member |
为有序集key的成员member的分数值加上增量increment。 |
|
ZRANK key member |
返回有序集key中成员member的排名。 |
|
ZREVRANK key member |
返回有序集key中成员member的排名,按分数值逆序排列。 |
|
ZLEXCOUNT key min max |
返回有序集key中,所有成员在指定的字典区间内的数量。 |
|
ZRANGEBYLEX key min max |
返回有序集key中,所有成员在指定的字典区间内。 |
|
ZREMRANGEBYRANK key start stop |
移除有序集key中,指定排名(rank)区间内的所有成员。 |
|
ZREMRANGEBYSCORE key min max |
移除有序集key中,所有分数值介于min和max之间的成员。 |
BitMap
特点&应用场景
位图不是实际的数据类型,而是String类型中定义的一种面向位的操作,所 以这个位图的最大长度是512M。
实时的统计数据
|
指令 |
描述 |
|
SETBIT key offset value |
对键key所存储的字符串值,设置或清除指定偏移量上的位(bit)。 |
|
GETBIT key offset |
返回键key所存储的字符串值在指定偏移量上的位(bit)的值。 |
|
BITCOUNT key [start end] |
计算字符串在指定范围内的设置位的数量。 |
|
BITOP operation destkey key [key ...] |
对一个或多个保存二进制位的字符串 key 进行位元操作,并将结果保存到 destkey 上。 |
|
BITPOS key bit [start] [end] |
返回位图key中第一个值为bit的位的位置。 |
|
BITFIELD key [GET type offset] [SET type offset value] [INCRBY type offset increment] |
对键key的字符串进行多个位域操作。 |
Redis之入门概括与指令的更多相关文章
- 超强、超详细Redis数据库入门教程
这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 [本教程目录] 1.redis是什么2.redis的作者何许人也3.谁在使用red ...
- Redis快速入门:安装、配置和操作
本文是有关Redis的系列技术文章之一.在之前的文章中介绍了<Redis快速入门:初识Redis>,对Redis有了一个初步的了解.今天继续为大家介绍Redis如何安装.配置和操作. 系列 ...
- 超强、超详细Redis数据库入门教程(转载)
这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 [本教程目录] 1.redis是什么 2.redis的作者何许人也 3.谁在使 ...
- Redis从入门到精通:初级篇
原文链接:http://www.cnblogs.com/xrq730/p/8890896.html,转载请注明出处,谢谢 Redis从入门到精通:初级篇 平时陆陆续续看了不少Redis的文章了,工作中 ...
- 超详细Redis数据库入门教程
[本教程目录] 1.redis是什么2.redis的作者何许人也3.谁在使用redis4.学会安装redis5.学会启动redis6.使用redis客户端7.redis数据结构 – 简介8.redis ...
- Redis从入门到精通:初级篇(转)
原文链接:http://www.cnblogs.com/xrq730/p/8890896.html,转载请注明出处,谢谢 Redis从入门到精通:初级篇 平时陆陆续续看了不少Redis的文章了,工作中 ...
- 【转】redis数据库入门教程(全面详细)+面试问题
[本教程目录] 1.redis是什么2.redis的作者何许人也3.谁在使用redis4.学会安装redis5.学会启动redis6.使用redis客户端7.redis数据结构 – 简介8.redis ...
- 一篇文章带你了解NoSql数据库——Redis简单入门
一篇文章带你了解NoSql数据库--Redis简单入门 Redis是一个基于内存的key-value结构数据库 我们会利用其内存存储速度快,读写性能高的特点去完成企业中的一些热门数据的储存信息 在本篇 ...
- Java中Redis简单入门
Redis是一个开源的,先进的 key-value 存储可用于构建高性能,可扩展的 Web 应用程序的解决方案. Redis官方网网站是:http://www.redis.io/,如下: Redis ...
- Redis 快速入门
Redis 快速入门 谈到Redis,大家应该都不陌生.它是用c语言开发的一个高性能键值数据库,主要用于缓存领域.本章通过Redis的安装,Redis的五大数据类型,Redis的Java客户端,Red ...
随机推荐
- S32Kxxx bootloader之CAN FD UDS bootloader
了解更多关于bootloader 的C语言实现,请加我Q扣: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 六年前, 汽车内ECU ...
- JavaFx Maven配置推荐(七)
JavaFx Maven配置推荐(七) JavaFX 从入门到入土系列 开发Java Fx,推荐使用Maven管理项目,下面是常用到的配置基于jdk11+ <!-- 打成 jar 包 --> ...
- 七天.NET 8操作SQLite入门到实战 - 第七天BootstrapBlazor UI组件库引入(1)
前言 由于第七天Blazor前端页面编写和接口对接的内容比较的多,所以这一章节将会分为三篇文章来进行讲解,大家可以认为分为早.中.晚来进行阶段性学习,从而提高学习效率. 七天.NET 8 操作 SQL ...
- POJ 2609 DP 双队列DP
POJ 2609 DP 双队列DP 题意 给出队列容量与一组数,并且我们有两个这样容量的空队列,要求我们按照次序把数装进两个队列中,输出最多能装多少以及每个数装进哪个队列. 思路 由于按照次序来装,不 ...
- nacos系列:spring cloud使用nacos实现配置管理和服务发现
目录 版本说明 创建项目 版本说明 IDEA:2021.3 Maven:3.6.3 Jdk:17 Spring-Boot:2.6.13 Spring-Cloud:2021.0.5 Spring-Clo ...
- DTSE Tech Talk 第18期丨统计信息大揭秘,数仓SQL执行优化之密钥
摘要:华为云EI DTSE技术布道师王跃,针对统计信息对于查询优化器的重要性,GaussDB(DWS)最新版本的analyze当前能力,与开发者和伙伴朋友们展开交流互动,帮助开发者快速上手使用统计信息 ...
- LiteOS内核源码分析:静态内存Static Memory
摘要:本文带领大家一起剖析了LiteOS静态内存模块的源代码,包含静态内存的结构体.静态内存池初始化.静态内存申请.释放.清除内容等. 内存管理模块管理系统的内存资源,它是操作系统的核心模块之一,主要 ...
- 带你认识全新的华为云IoT路网数字化服务
摘要:随着通信技术的发展,交通领域提出以C-V2X车路协同技术来弥补单车智能存在的缺陷,从而推动智能驾驶.自动驾驶技术的成熟. 本文分享自华为云社区<带你全新认识华为云IoT路网数字化服务> ...
- 企业诊断屋:二手车交易平台 APP 如何用 AB 测试赋能业务
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 2023年汽车行业新车市场低靡,由新车降价引发的车辆价格波动很快传导到二手车市场,二手车的交易也受到了冲击,收车验 ...
- 接口文档 token原理 jwt介绍和原理 drf-jwt快速使用
目录 昨日回顾 认证 权限 频率 全局异常处理 接口文档 接口文档编写 drf自动生成接口文档 cookies-session-token发展史 jwt介绍和原理 jwt的构成 base64的编码和解 ...