Redis基础语法

2023-11-12

noSQL:

主要解决高并发数据,可以提高访问性能,将低服务器负担;


Redis:

底层结构:采用键值对存储

工作机制:采用单线程


Redis的数据结构(实用度左至右)
string hash list set zset
key-value key-(field-value) 双向链表 的key
查询快,储存量少 查询快,存储量多 增删快,查询慢 去重,可求交并差集

说明:

Redis诞生的原因是解决高并发访问数据;而高并发一般是访问量和修改了量短时间发送变化;其需要根据其业务需求而选择不同的数据结构


string数据类型:

底层:键值对(key value)

方法 示例 说明
set set key value 储存数据
get get key value 读取数据
del del key 删除数据
setnx setnx key value 判断存储:如果key存在,无法存储并返回0
mset mset key value… 批量添加
mget mget key… 批量查看
incr incr key 数据加一
decr decr key 数据减一 :注意有负数的存在

说明:

key命名规范

json: 表名:主键名:“json字符串”
字段: 表名:主键名:主键值:字段名

hash数据类型:

底层:键-键值对(key-(field-value))

方法 示例 说明
hset hset key field value 存储数据
hget hget key field 获取数据
hdel hdel key 删除数据
hlen hlen key 查看field数量
hexists hexists key field 判断是否key存在
hmset hmset key field value… 批量存储
hmget hmget key field… 批量查询
hgetall hgetall key 查询所有数据 (底层采用单线程所以如果数据过多对服务器负担加载,慎用)

list数据类型:

底层:双向链表

特点:有序、有索引、两边都可以操作、查询慢、增删快

修饰 操作规则 说明
l 左操作 以L开头方法操作数据以左边为开始操作数据
r 右操作 以R开头方法操作数据以右边为开始操作数据

方法

方法 示例 说明
lpush lpush key value1 value2… 添加数据
lrange lrange key start stop 遍历数据:start stop(头索引,遍历到那个索引)
lpop lpop key 删除数据 只能一个一个删,删除位置取决于l还是r
lindex lindex key index 获取指定索引位置的数据
lrem lren key count value 删除指定的数据: count(删除多少个) 删除什么值

说明:我们常用list,因为list可以对数据进行分页操作


set数据类型

数据结构:

类似hash结构,保留key,摒弃了value

底层:还是hashmap

特点:

无序、不重复、查询慢、增删快

方法 示例 说明
sadd sadd key member1 member2… 添加数据
smembers smembers key 读取数据
srem srem key member1 member2… 删除数据
scard scard key 获取数量
sismember sismember key member 判断是否包含指定的数据
sinter sinter key1 key2… 求交集(公共的数据)
sunion sunion key1 key2… 求并集(全部数据)
sdiff sdiff key1 key2… 求差集(不包含公共的其他数据)

公共api

针对所有数据类型(都是针对key操作的)

基本方法

方法 示例 说明
del del key 删除指定key
exists exists key 判断key是否存在
type type key 获取key的数据类型

时效性方法

方法 示例 说明
expire expire key seconds 为指定key设置有效时间
ttl ttl key 获取key存活时间:(-1永久存储,-2消亡或不存在)
persist persist key 将key时效性转换成永久性

查询方法

方法 说明
keys * 查询所以的key
keys #* 查询所有以#开头的key
keys *# 查询所有以#结尾的key
keys ??# 查询以?占位符且以#结束的所有key(:模糊查询,但key的字符长度要一致),可以任意组合(如?#?#)
keys #*$ 查询以#开头以$结束的

说明:一般我们禁用查询方法;应为效率太低了;一般都会将数据记录在一个文档中(拿到数据文档先分析数据结构,存的数据是什么)


Redis数据库操作

底层:默认是16个数据库,且以0开始的(可修改)

方法 说明
select index 切换数据库
move key db 移动数据
dbsize 获取数据库中有多少key
flushdb 清除当前数据库数据
flushall 清除所有数据(不建议使用)

总结:
  • 在hash数据结构中如果key中没有数据那么这个key也会被回收掉
  • 且在Rdids中无法定义任何重名的key包括不同数据结构的数据
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Redis基础语法 的相关文章

随机推荐

  • python 爬虫起步 图片

    import urllib request import gevent from gevent import monkey monkey patch all def download img name img url ret urllib
  • c++ 类

    设计一个Per类 类中包含私有成员 姓名 年龄 指针成员身高 体重 再设计一个Stu类 类中包含私有成员 成绩 Per类对象 p1 设计这两个类的构造函数 析构函数和拷贝构造函数 include
  • 水平分割和毒性逆转的作用

    水平分割和毒性逆转主要是针对动态路由协议RIP中 避免路由环路 提高收敛速度产生的 水平分割产生原因 产生环路的一种情况是 路由器A将从路由器B学习到的路由信息又告诉给了路由器B 最终 路由器B认为通过路由器A能够到达目标网络 路由器A认为
  • 「自控元件及线路」1.1 直流电动机概述

    本节介绍直流电动机的工作原理和基本结构 本节介绍电枢绕组的环形 鼓形结构 波绕组和叠绕组 本节介绍直流电机的换向 文章目录 电机概述 直流电机工作原理 直流电机的额定值 直流电机的基本结构 主磁极 电枢绕组 电枢绕组的绕法 环形绕组 鼓形绕
  • vue 组件清除定时器的问题

    我在a页面写一个定时 让他每秒钟打印一个1 然后跳转到b页面 此时可以看到 定时器依然在执行 这样是非常消耗性能的 如下图所示 解决方法1 首先我在data函数里面进行定义定时器名称 data return timer null 定时器名称
  • ubuntu如何添加一个网卡作为桥接网卡,实现使用双网卡来通过网络与开发板联系

    1 虚拟机如何上网 如何通过网络和开发板联系 双网卡解决 1 NAT网卡 虚拟网卡 2 桥接网卡 真实网卡 NAT网卡用于解决虚拟机上网 桥接网卡用来保证ubuntu可以与开发板互通 注 桥接网卡不是虚拟的 需要真实的网卡 这里建议usb网
  • 彻底卸载VS2010

    网上说使用vs2010 uninstall utility可以完全卸载VS2010 实测并不能完全卸载VS2010 通过手动一个一个删除VS2010的相关组件又太麻烦 发现一个方便的删除方式 其实VS2010已经提供了删除方法 打开控制面板
  • python对postgresql库读取、写入、长连接、制定DDL

    读取PG数据库 方法一 使用psycopg2 import psycopg2 import pandas as pd database user password host port分别对应要连接的PostgreSQL数据库的数据库名 数据
  • linux下C语言中的flock函数用法 .

    表头文件 include
  • 微信小程序 — 网络封装(基础篇一)

    网络请求类封装 const baseUrl https xxx xx xx export default function reqeust params return new Promise resolve reject gt wx req
  • vue项目实现锚点定位功能

    背景 在html中使用id可以简单实现锚点坐标功能 如下 起点 a href mark 起点 a 终点 div 终点 div 但是此时在url中会添加mark 不直接用以上方法的原因主要有二 1 它影响路径 如果做数据提交或其他需要获取当前
  • 讯飞语音转写

    逻辑 语音上传 gt prepare 讯飞 返回一个task id gt 音频分片上传 upload 讯飞 调用多次 直到文件全部上传完成 gt 合并音频merge 讯飞 gt 每三分钟调用getProgress 讯飞 gt 得到结果get
  • vue项目各种报错-2

    最近做了一个级联下拉框作为表单查询条件的项目 但是在点击查询按钮后报如下报错 但表单查询功能不受任何应影响 解决 当用户切换options数据时 就会重新渲染el cascader组件 给级联选择器绑定 key 值 通过 watcher 监
  • SpringBoot创建一个简单项目和用到的注解解释

    SpringBoot本身就是一个maven项目 IDEA中创建一个简单项目以后 在启动类对应的包下面 包的的子级也可以 这里用的是HelloController 代码如下 访问路径 localhost 8080 hello 项目启动 直接在
  • c语言大数相加

    大数相加 由于整型数的位数有限 因此整型数不能满足大整数 超长整数 的运算要求 大整数计算是利用字符串来表示大整数 即用字符串的一位字符表示大整数的一位数值 然后根据四则运算规则实现大整数的四则运算 大数相加我主要总结如下 1 定义两个字符
  • docker安装centos7系统并使用xshell连接

    文章目录 前言 一 docker和虚拟机 二 docker安装 1 引入库 2 docker安装centos7系统 3 修改docker为自动重启 4 修改docker某个容器自动重启 总结 前言 在搭建视频服务器时 遇到了需要集群的问题
  • 杰理之芯片丝印说明【篇】

    第一行 杰理公司LOGO 第二行 字母 代表芯片的生产信息 即 批次号 2C4 代表芯片型号的末3位 从芯片丝印 是 看不出 芯片的具体型号 例如 图片的丝印 对应的型号有可能是 AC6322C4 AC6352C4 AC6362C4 等
  • OpenWrt目录结构及编译过程

    OpenWrt代码有8个固定的顶层目录以及7个编译时创建的临时目录 顶层目录 docs docs目录 用于存放开发文档 编译时不需要 包含了整个宿主机的文件源码的介绍 里面还有Makefile为目标系统生成docs 使用make C doc
  • 〖Web全栈开发①〗—网络编程基础(上)

    网络编程基础 网络编程 网络编程概述 TCP IP协议 IP地址 什么是IP IP组成 IP 地址使用过程 查看IP Ip地址分类 子网掩码 端口 socket Socket原理 什么是Socket 2 创建一个tcp socket tcp
  • Redis基础语法

    noSQL 主要解决高并发数据 可以提高访问性能 将低服务器负担 Redis 底层结构 采用键值对存储 工作机制 采用单线程 Redis的数据结构 实用度左至右 string hash list set zset key value key