Redis特点(AP模型,优先保证可用,不会管数据丢失):

快的原因:

  1. 基于内存操作,操作不需要跟磁盘交互

  2. k-v结构,类似与hashMap,所以查询速度非常快,接近O(1)。

  3. 底层数据结构是有如:跳表(节省内存,不需要节省IO操作)、SDS

  4. 通信使用lO多路复用,单个线程中通过记录跟踪每一个sock(I/O流) 的状态来 管理多个I/O流

  5. 单线程的原因是因为它执行的速度比线程切换的速度还快。

高可用:

  1. 完善的内存管理机制:过期,淘汰,持久化

  2. 主从,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之入门概括与指令的更多相关文章

  1. 超强、超详细Redis数据库入门教程

    这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 [本教程目录] 1.redis是什么2.redis的作者何许人也3.谁在使用red ...

  2. Redis快速入门:安装、配置和操作

    本文是有关Redis的系列技术文章之一.在之前的文章中介绍了<Redis快速入门:初识Redis>,对Redis有了一个初步的了解.今天继续为大家介绍Redis如何安装.配置和操作. 系列 ...

  3. 超强、超详细Redis数据库入门教程(转载)

    这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下   [本教程目录] 1.redis是什么 2.redis的作者何许人也 3.谁在使 ...

  4. Redis从入门到精通:初级篇

    原文链接:http://www.cnblogs.com/xrq730/p/8890896.html,转载请注明出处,谢谢 Redis从入门到精通:初级篇 平时陆陆续续看了不少Redis的文章了,工作中 ...

  5. 超详细Redis数据库入门教程

    [本教程目录] 1.redis是什么2.redis的作者何许人也3.谁在使用redis4.学会安装redis5.学会启动redis6.使用redis客户端7.redis数据结构 – 简介8.redis ...

  6. Redis从入门到精通:初级篇(转)

    原文链接:http://www.cnblogs.com/xrq730/p/8890896.html,转载请注明出处,谢谢 Redis从入门到精通:初级篇 平时陆陆续续看了不少Redis的文章了,工作中 ...

  7. 【转】redis数据库入门教程(全面详细)+面试问题

    [本教程目录] 1.redis是什么2.redis的作者何许人也3.谁在使用redis4.学会安装redis5.学会启动redis6.使用redis客户端7.redis数据结构 – 简介8.redis ...

  8. 一篇文章带你了解NoSql数据库——Redis简单入门

    一篇文章带你了解NoSql数据库--Redis简单入门 Redis是一个基于内存的key-value结构数据库 我们会利用其内存存储速度快,读写性能高的特点去完成企业中的一些热门数据的储存信息 在本篇 ...

  9. Java中Redis简单入门

    Redis是一个开源的,先进的 key-value 存储可用于构建高性能,可扩展的 Web 应用程序的解决方案. Redis官方网网站是:http://www.redis.io/,如下: Redis ...

  10. Redis 快速入门

    Redis 快速入门 谈到Redis,大家应该都不陌生.它是用c语言开发的一个高性能键值数据库,主要用于缓存领域.本章通过Redis的安装,Redis的五大数据类型,Redis的Java客户端,Red ...

随机推荐

  1. rcs群发软件系统功能设计与应用,rcs群发软件系统,rcs群发软件

    随着科技的不断发展,人们对于通讯方式的需求也在不断变化,传统的短信.电话已经无法满足人们对于高效.便捷.实时的通讯需求,正是在这样的背景下,富通讯解决方案(Rich Communication Sui ...

  2. P1967 [NOIP2013 提高组] 货车运输 做题记录

    套路题了. 根据和角公式 \(\mathrm{\sin (\alpha + \beta) = \sin \alpha \cos \beta + \cos \alpha \cos \beta, \cos ...

  3. 2023-08-16:用go语言如何解决进击的骑士算法问题呢?

    2023-08-16:用go写算法.一个坐标可以从 -infinity 延伸到 +infinity 的 无限大的 棋盘上, 你的 骑士 驻扎在坐标为 [0, 0] 的方格里. 骑士的走法和中国象棋中的 ...

  4. SVN工具基础知识

    SVN工具基础知识 1.简介 1.全称Subversion,是一个开放源代码的版本控制系统,Subversion 在 2000 年由 CollabNet Inc 开发,现 在发展成为 Apache 软 ...

  5. gitlab jenkins 安装笔记

    gitlab gitlab ce是社区版本,ee是企业版本,称为gitee. https://packages.gitlab.com/gitlab/gitlab-ce/install 通过运行curl ...

  6. C++篇:第九章_字符串_知识点大全

    C++篇为本人学C++时所做笔记(特别是疑难杂点),全是硬货,虽然看着枯燥但会让你收益颇丰,可用作学习C++的一大利器 九.字符串 可以用[ ]进行下标访问 使用string类需将头文件包含在程序中, ...

  7. 【昇腾】ModelArts与Atlas 200 DK云端协同开发——行人检测Demo(完整版)

    摘要:本文主要为大家展示如何基于ModelArts与Atlas 200 DK 端云协同开发的行人检测Demo实现过程. 基于开源数据集,使用ModelArts训练行人检测模型,在本地MindStudi ...

  8. 创建一个简单的Docker镜像

    1. 创建 Dockerfile 文件.index.html测试页面 [root@localhost docker]# vi Dockerfile FROM nginx:1.17.6 #基于 ngin ...

  9. docker安装aira2 pro与ariang以及alist推送下载的配置

    Docker一键安装 aira2-pro: docker run -d --name aria2 --restart unless-stopped --log-opt max-size=1m -e P ...

  10. 【论文笔记#1】SPGAN-DA:用于领域自适应遥感图像语义分割的语义保留生成对抗网络

    作者: Yansheng Li 发表年代: 2023 使用的方法: 无监督领域自适应(UDA).GAN.ClassMix.边界增强 来源: IEEE TGRS 方向: 语义分割 期刊层次: CCF B ...