当前位置: 首页 > news >正文

redis基础命令

基于内存的数据存储系统

redis中数据以键值对存储的

键区分大小写

redis默认都是使用字符串存储数据

//启动服务
redis-server
//连接客户端
redis-cli
//连接客户端,--raw表示以原始的形式显示内容
redis-cli --rawset keyname valueget keynamedel keyname
//判断是否存在某个key
exists keyname
//显示全部key
keys *
//显示以me结尾的key
keys *me
//查看过期时间
//-1表示不会过期
//-2表示键不存在或者纯在过已经过期
ttl keyname
//设置键的过期时间,例子是十秒
expire keyname 10
//设置键并设置过期时间
setex keyname 5 value
//当键不存在时设置键的值
setnx keyname value

列表list

类似于数组

//向列表头部加入数据
lpush letters a
//遍历列表
//0表示起始位置,-1表示最后一个
lrange letters 0 -1
//一次性从头部加入多个数据
lpush letters b c d e
//从尾部添加元素
rpush letters f
//从头部删除一个元素
lpop letters
//获取长度
llen letters
//删除指定元素以外的列表
//保留1到3的元素
ltrim letters 1 3

set

无序集合 元素不能重复

//添加一个或多个元素
sadd course redis
//查看全部元素
smember course
//查看元素是否在集合里
sismemeber course redis
//删除指定元素
srem course redis

有序集合

//添加一个或多个成员以及分数
zadd result 1 A 2 B 3 C
//查询所有成员
zrange result 0 -1
//查询所有成员及其分值
zrange result 0 -1 withcscores
//查询指定成员的分数
zscore result A
//查看某个成员的排序
//排序是由小到大的
zrank result B
//从大到小的排名
zrevrank result A

哈希

//设置键值对
hset person name lin
hset person age 11
//获取指定键对应的值
hget person name
//获取全部键值对
hgetall person
//删除指定键所在键值对
hdel person
//判断某个键值对是否存在
hexists person phone

发布订阅模式

# 发布模式
publish mychann message#订阅模式
subscribe mychann

消息无法持久

无法记录历史消息

通过stream解决

//加入消息
xadd mychann * course mysql
//查看长度
xlen mychann
//遍历消息
xrange mychann - +
//删除消息
xdel mychann 1739431483258-0
//删除所有消息
xtrim mychann maxlen 0
//指定ID
//第一个数字是时间戳,第二个数字是序列号
//保证ID的递增
xadd mychann 1-0 course git
//count 2表示一次读取两个;block表示没有消息就阻塞1000毫秒;0表示从头读取
xread count 2 block 1000 streams mychann 0
//获取从现在开始新加的消息
xread count 2 block 1000 streams mychann $
//添加消费者组group1
xadd create mychann group1 0
//查看消费者组的信息
xinfo groups mychann
//增加消费者
xgroup createconsumer mychann group1 consumer1
//读取消息
xreadgroup group group1 sonsumer1 count 2 block 3000 streams mychann >

Geospatial地理空间

//添加城市及其经纬度
geoadd city 116.405285 39.904989 beijing
//查看某个城市的经纬度
geopos city beijing
//返回两个城市之间的距离
geodist city beijing shanghai 
//距离一定距离以内的城市
geosearch city frommermber shanghai byradius 300 km

HyperLogLog

用来做基数统计

使用随机算法

//添加
pfadd course git docker redis
//统计数量
pfcount course
//合并
pfmerge result course course2

Bitmap位图

string类型的扩展

//设置位图偏移量的值
setbit dian 1 0
//获取位图偏移量的值
getbit dian 1
//统计key的值里面有多少个bit是1
bitcount dian
//获取key里面第一个出现0的位置
bitpos dianzan 0

bitfield位域

//id:plaryer:1 u8等级 #0表示第一个位置
bitfield player:1 set u8 #0 
//获取内存中的状况
get player:1

事务

事务并不能保证所有的命令都会执行成功,它的执行结果取决于事务中的命令

可保证:

  • 在发送exec命令之前,所有命令都会被放入到一个队列中缓存起来,不会立即执行
  • 在收到exec命令之后,事务开始执行,事务中任何一个命令执行失败,其他命令依然会被执行
  • 事务执行的过程中吗,其他客户端提交的,命令请求并不会被插入到事务的执行命令序列中
//开启事务
multi
//结束事务
exec

http://www.lryc.cn/news/539375.html

相关文章:

  • 基于Java+SpringBoot+Vue的前后端分离的校园闲置物品交易网站
  • K8s 证书认知(K8s Certificate Awareness)
  • 前x-ai首席科学家karpathy的从零构建ChatGPT视频学习笔记--8000字长图文笔记预警(手打纯干货,通俗易懂)
  • 【智慧校园】分体空调节能监管:打造高效节能的学习环境
  • 深度学习-1.简介
  • 【Rust中级教程】1.10. 引用及内部可变性(简单回顾):引用、内部可变性、`Cell`类型及相关操作
  • Docker 安装和配置 Nginx 详细图文教程
  • 基于Java+Swing+Mysql实现旅游管理信息系统
  • 使用 Openpyxl 操作 Excel 文件详解
  • 统信服务器操作系统V20 1070A 安装docker新版本26.1.4
  • 【数据分享】1929-2024年全球站点的逐年降雪深度数据(Shp\Excel\免费获取)
  • python爬虫系列课程1:初识爬虫
  • 大模型工具大比拼:SGLang、Ollama、VLLM、LLaMA.cpp 如何选择?
  • 什么是语料清洗、预训练、指令微调、强化学习、内容安全; 什么是megatron,deepspeed,vllm推理加速框架
  • HTTP的“对话”逻辑:请求与响应如何构建数据桥梁?
  • 【深度学习】预训练和微调概述
  • 自动化测试框架搭建-单次接口执行-三部曲
  • 【阮一峰】2.数组
  • DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方DeepSeek接入)
  • 【Java Card】Applet 使用Shareable进行数据分享以及部分问题处理
  • 国产FPGA开发板选择
  • com.typesafe.config
  • Ubuntu学习备忘
  • 【C++】— 掌握STL vector 类:“Vector简介:动态数组的高效应用”
  • Docker__持续更新......
  • 【R语言】主成分分析与因子分析
  • ROS-相机话题-获取图像-颜色目标识别与定位-目标跟随-人脸检测
  • STM32 如何使用DMA和获取ADC
  • 【JAVA实战】JAVA实现Excel模板下载并填充模板下拉选项数据
  • java面试笔记(一)