[沫忘录] Redis的配置与使用技巧

[沫忘录] Redis的配置与使用技巧

windows的Redis文件配置

windows下的redis文件配置信息主要集中在"redis.windows.conf"这一文件当中。

配置文件中以下参数可以设置Redis的内存大小和栈空间大小。

maxmemory 字节数
maxheap 字节数

redis十大数据类型

key的常见操作命令
  • key * 查看当前数据库中的所有key
  • exists key 判断key是否存在
  • type key 查看key的类型
  • del key 删除指定key的数据
  • unlink key 非阻塞删除,即异步的删除该key而不会等该key删除完才执行下一条指令。
  • ttl key 查看该key还有多久过期,-1代表不会过期,-2代表已过期。
  • expire key 给key设置过期时间
  • move key db2[1-15] 将当前key移动到指定数据库db当中
  • select db2[1-15] 切换当指定数据库db2中
  • dbsize 查看当前数据库的key数量
  • flushdb 清空当前库
  • flushall 清空所有数据

tip:

命令不区分大小写,但key区分大小写。

help @类型 会给出帮助文档

string类型

string类型常用参数

EX 设计秒级过期时间 FX 设计毫秒级过期时间

EXAT 设计秒级的UNIX时间戳对应的过期时间

PXAT 设计毫秒级的UNIX时间戳对应的过期时间

NX 键不存在时设置键值 XX 键存在时设置键值

KEEPPTTL 保留当前设置键的生存时间,避免key的重新设置覆盖原过期时间

GET 返回指定键原本的值,若不存在则为nil

常用命令

GETRANGE key 0 1 获取字符串中下标为0到1的子字符串
特别的 0 -1特指获得整个字符串

SETRANGE key 1 字符串 将下标为1开始的字符串替换成指定字符串

getset 取值并设值

list类型

常用命令

lindex key index 获取key的从头开始下标为index的值

llen key 获取key的元素个数

LREM key 2 v1 删除key中2个值为v1的元素

LTRIM key 1 3 只保留下标为1到3的元素

hash类型

值内包含field/value键值对,即 key field value
常用命令

hset hget hmset hmget hgetall hdel hdel

hexists key hkeys key(获取该key中所有field) hvals key(获取该key中所有的value)

set类型

常用命令

SADD SMEMBERS(遍历key中的所有元素) SISMEMBER key member

SREM key member[member…] 删除元素 SCARD 获取集合里元素个数

SRANDMEMBER key [数字] 从集合中随机展示指定个数的元素,不指定则默认1

spop key [数字]

SINTER SINTERCARD 3 key1 key2 key3(统计指定的三个key的个数)

zset(sorted set有序集合)类型

key score1 v1 score2 v2…

常见指令

ZADD ZRANGE key start stop(返回下标start到stop的值)[withscores]

ZREVRANGE ZRANGEBYSCORE key (min max (表示不包含该边界 limit 分页展示

ZREM ZMPOP n key1 key2 min count 2(从n个key,key1,key2中各弹出最小的两个值)

ZRANK key values(获取指定值的下标) zrevrank

bitmap(位图)类型

实质是string类型,一种统计二值状态的数据类型,结构上类似bool数组

支持最大位数是2^32,小端储存

bitmap的类型是按照8位一组一byte计算的,即按照已设置的最大offset对8的向上取整定类型大小

常见指令

SETBIT key offset 0/1 在key的下标为offset的位置设0或1 GETBIT

STRLEN BITCOUNT(已有位含1数)

BITOP operator(AND OR NOT XOR) destkey key1 [key2] 对key1[key2]进行算术操作,并将结果存放进destkey中

HyperLogLog(基数统计)类型

做基数统计的数据类型,用于统计一个集合中去重后的元素个数

常用类型

PFADD PFCOUNT PFMERGE destkey key1 [key2…]

GEO(地理空间)类型

含经纬度的类型,便于做点到点的各种计算, zset类型
tips: 如果有中文乱码问题可在启动redis时加--raw参数

常用命令

GEOADD key longitude latitude member […] GEOPOS GEOHASH

GEODIST key member1 memer2 m/km GEORADIUS 经纬度 num k/km withdist withcoord count 10(前10条记录) withhash desc

GEORADIUSBYMEMBER 使用member而非经纬度

Stream类型

对list在消息队列方面应用的扩展。对比于list的点对点的单消费模式,stream能够满足点对多的多消费模式,实现生产者生产信息,能够被多个消费者所接收。

类似于list, 在stream类型中,储存数据的类节点数据结构被称为==Message Content(消息内容), 而消费数据的类指针数据结构被称位Consumer group==(消费组)。

消费组中有一个叫==Last_delivered_id的变量,表示当前读取的消息内容id,每当消息组中的消费者(consumer==)读取了该id下的消息,那么Last_delivered_id就会指向下一个id。

消费组中每个消费者都有一个叫==pending_ids==的状态变量。用于记录当前消费者已读取但没有ACK的消息id。这样能够有效保证消息至少被客户端(即各消费组的消费者)读取一次。

指令参数中的四个特殊符号

  • - + 分别表示消息队列中,最小的消息id和最大的消息id
  • $ 适用于多线程IO的阻塞读,表示比当前消息队列ID还要大的id,即为其他线程往当前消息队列写入的消息的id,无数据则为空
  • > 从当前所指的id开始读数据,对消息队列而言是$,对消费组则是当前Last_delivered_id
  • ***** 用于XADD命令中,让系统自动生成id(自增主键)。
  • 0-0/000 表示从最小ID开始获取Stream中的消息

Message Content常用指令

XADD XTRIM(对消息队列消息数量的限制,其中maxlen表示允许的最大长度,minid允许的最小id)

XDEL(按时间戳删除) XLEN XRANGE XREVRANGE

XREAD COUNT n block 0(阻塞读取) streams 消息队列名 $

Consumer group常用指令

XGROUP CREATE mystream groupA $/0(从尾消费,只读新消息/从头消费) XREADGROUP GROUP count n(单个消费者最多读n条) XACK(对消费组用id确认)

XGROUP SETID XGROUP DELCONSUMER

XPENDING(查看消费组各消费者未ACK的消息) XCLAIM

XINFO GROUPS XINFO STREAM

tips

  • 自动生成的消息id有两部分组成:毫秒时间戳-该毫秒产生的第几条消息的下标表示。

  • 消息队列的每个节点便是一个容器,里面能够存多个值。

*bitfields(位域)类型

该类型能够将Redis字符串看作一个由二进制位组成的数组,并对该数组上的具体位进行操作。

常用指令

BITFIELD key [GET type offset] | [SET type offset value]

| [INCRBY type offset increment(步长)]
type可以为i5:有符号的5位二进制类型,u4无符号的4位二进制类型

溢出控制

  • WRAP(回绕):溢出时,处理方式和整型相同。(默认溢出处理方式)
  • SAT:采用饱和计算方式处理溢出,
    下溢则为最小整数,上溢则为最大整数。
  • FAIL:拒绝对溢出做处理,并返回空值以示报错。

显示指定溢出处理方式,在BITFIELD后加额外参数:OVERFLOW WRAP/SAT/FAIL

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/862789.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

打造坚固的SSH防护网:端口敲门入门指南

欢迎来到我的博客,代码的世界里,每一行都是一个故事 🎏:你只管努力,剩下的交给时间 🏠 :小破站 打造坚固的SSH防护网:端口敲门入门指南 前言什么是端口敲门端口敲门的优点1. 增强安全…

中介子方程三十六

XXFXXuXXWXXuXXdXXrXXαXXuXpXXKXηXiXXnXXiXηXKXXpXuXXαXXrXXdXXuXWXπXXWXeXyXeXbXπXpXXNXXqXeXXrXXαXXuXpXXKXηXiXXnXXiXηXKXXpXuXXαXXrXXeXqXXNXXpXπXbXeXyXeXWXXπXWXuXXdXXrXXαXXuXpXXKXηXiXXnXXiXηXKXXpXuXXαXXrXXdXXuXXWXXuXXFXXEXXyXXEXXrXXαXXuXpXXKXη…

Java_Java基础:HashCode详解

Hashcode的作用 java的集合有两类,一类是List,还有一类是Set。前者有序可重复,后者无序不重复。当我们在set中插入的时候怎么判断是否已经存在该元素呢,可以通过equals方法。但是如果元素太多,用这样的方法就会比较满…

【Python】Tkinter图形用户界面

窗口管理 tk.TK():创建主窗口对象。 参数:无。 返回值:返回一个 Tkinter 主窗口对象。 import tkinter as tk root tk.Tk() # 创建主窗口root.mainloop():启动 Tkinter 主事件循环,使窗口保持显示并等待用户交互…

网络扫描工具Nmap

一、Nmap简介 Nmap是一款功能强大的网络扫描工具,用于网络发现和安全审计。 Nmap,即网络映射器(Network Mapper),是一个广受欢迎的开源工具,主要用于网络的主机发现、端口扫描、服务检测以及操作系统识别…

Java 中常见的数据结构算法及其应用

Java 中常见的数据结构算法及其应用 在Java编程中,选择合适的数据结构对程序的性能和可维护性至关重要。本文将详细介绍Java中常见的数据结构及其应用场景,包括数组、链表、栈、队列、双端队列、集合、映射、堆、树、图和列表。 1. 数组 (Array) 数组…

React的Redux的状态管理

步骤 1.创建新项目 npx create-react-app react-redux 2.安装配套工具 npm i reduxjs/toolkit react-redux 3.启动项目 npm run start 4.在src目录下创建store文件夹 5.在store文件夹下创建modules文件夹 6.在store文件夹里创建index.js文件 7.在counterStore.js文件…

Python入门-基础知识-模块

Python程序中的模块的功能与函数相似,有助于更好地组织代码,提高代码的利用率。模块是一 种以“.py”为扩展名的文件,其中可以包含变量、函数等各种代码形式。导入模块后,就可以使用 模块中的变量、函数等。Python库着重强调功能性…

随着量子计算的崭露头角,C 语言在未来是否需要做出适应性的改变,以适应新的计算架构和算法?

随着量子计算的发展,C语言可能需要进行一些适应性的改变以适应新的计算架构和算法。量子计算与经典计算存在很大的差异,涉及到量子比特、量子门和量子算法等概念。因此,为了更好地支持量子计算,C语言可能需要引入新的数据类型和算…

JS面试题7——localStorage,sessionStorage,cookie的区别

公共点&#xff1a;都是用于在客户端存放数据的 区别&#xff1a; 1. 数据存放的有效期不同 <script> sessionStorage.setItem("key", "123"); // 仅在当前浏览器窗口关闭前有效 localStorage.setItem("key", "456"); // 持久化…

自动化代码规范检查--Sonarqube部署

参考文档 官方文档安装数据库 官方给出几种数据库: # 我们选用postgres, 拉取镜像 docker pull postgres:16.0# 创建存储卷 docker volume create postgresql-data# 运行容器 docker run -d --name sonarqube-postgres \-p 5432:5432 \-e POSTGRES_DB=sonar_DB \-e POSTGRE…

PostgreSQL删除重复数据同时保留每组中的一条记录

PostgreSQL删除重复数据同时保留每组中的一条记录 在 PostgreSQL 中&#xff0c;你不能直接从一个 CTE&#xff08;公共表表达式&#xff09;中删除数据&#xff0c;因为 CTE 只是一个临时的结果集&#xff0c;它并不直接对应一个可以更新的表。但是&#xff0c;你可以使用 CT…

Nsight Compute 是怎么计算Roofline的呢

Nsight Compute 是怎么计算Roofline的呢 1.参考链接2.小结3.Nsight Compute 是怎么计算Roofline的呢4.生成测试程序5.测试规模为8192时的性能6.计算Roofline7.指标解释8.测试规模为1024时的性能9.测试规模为128时的性能10.RTX 3060基础能力测试11.sm__inst_executed.avg.pct_of…

IPv6测试指标有哪些?怎么看网站是否完成IPv6升级改造?

IPv6是互联网第六代协议&#xff0c;以其近乎无限的地址资源为未来互联网的发展提供了广阔空间和无限可能&#xff0c;为物联网、大数据、人工智能等新基建的蓬勃发展提供了坚实的网络支撑。我国高度重视IPv6的发展建设&#xff0c;自2017年《推进互联网协议第六版&#xff08;…

高性价比蓝牙耳机有哪些?2024超高性价比蓝牙耳机推荐

在2024移动互联网高速发展的时代&#xff0c;蓝牙耳机已成为我们生活中不可或缺的一部分。走在街头&#xff0c;低头看手机&#xff0c;滑动屏幕选歌&#xff0c;耳边传来清晰的旋律&#xff0c;这一幕已经成为现代生活的标配。但面对市场上琳琅满目的蓝牙耳机品牌和型号&#…

数据库同步最简单的方法

数据库同步到底有咩有简单的方法&#xff0c;有肯定是有的&#xff0c;就看你有咩有缘&#xff0c;看到这篇文章&#xff0c;你就是有缘人。众所周知&#xff0c;数据库同步向来都不是一件简单的事情&#xff0c;它很繁琐&#xff0c;很费精力&#xff0c;很考验经验&#xff0…

Kali Linux源

中科大 deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib阿里云 deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib deb-src http://mirrors.…

risc-v 怎么使用内存呢?

内存地址对齐 一般写法 #define ALIGN_4_BYTES 4 #define ALIGN_4_MASK (ALIGN_4_BYTES - 1) //4字节地址对齐 static inline uintptr_t align_4_bytes(uintptr_t address) {return (address ALIGN_4_MASK) & ~ALIGN_4_MASK; }//定义页大小是4k&#xff0c;2的12次方是409…

【LeetCode】每日一题:K个一组反转链表

解题思路 其实更像一个模拟题&#xff0c;但是有两个地方的边界一直没有处理好导致卡了很久。 AC代码 # Definition for singly-linked list. # class ListNode: # def __init__(self, val0, nextNone): # self.val val # self.next next class Solut…

力扣 刷题 使用双指针进行数组去重分析

目录 双指针 一、26.删除有序数组中的重复项 题目 题解 二、80. 删除有序数组中的重复项 II 题目 题解 三、27. 移除元素 题目 题解 双指针 我们这里所说的双指针实际上并不是真正的指针&#xff0c;它只是两个变量&#xff0c;用于标识数组的索引等&#xff0c;因其…