Redis 基础命令集详解

目录

一、string 类型及操作

二、hash 类型及操作

三、list 类型和操作

四、set 类型及操作

五、zset类型及操作

六、其他相关命令


一、string 类型及操作

        string是最简单的类型,一个key对应一个value,string类型是二进制安全的。redis的string可以包含任何数据。

set    # 设置key对应的值为string类型
       # 例如:我们添加一个name=kernel的键值对应
       # redis127.0.0.1:6379>set name kernel

setnx  # 设置key对应的值为string类型,如果 key已经存在,返回0,nx是not exist的意思

get    # 获取key对应的string值,如果key不存在返回nil

mset & mget # 同时设置和获取多个键值对

incrby # 对key的值做加加(指定值)操作,并返回新的值

del    # 删除一个已创建的key
  • 示例
# 设置key对应的值为string类型
set name daboluo
get name

# 设置key对应的值为string类型,如果 key已经存在,返回0,setnx 不进行覆盖,nx是not exist.
setnx name zhangsan
# set 进行覆盖
set name zhangsan

# 覆盖name键的内容为laowang,新增age键并写入18的内容。
mset name laowang age 18

# 查看所有的键
keys *

# 同时查看多个键的内容
mget name age

# 自增自减
INCRBY age 1
INCRBY age 1
INCRBY age -1
INCRBY age -1

二、hash 类型及操作

        Redis hash是一个string类型的field(字段)和value的映射表,它的添加、删除操作都是0(1)平均;hash特别适合用于存储对象,相较于将对象的每个字段存成单个string类型,将一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存取整个对象。

hset    # 设置hash field 为指定值,如果key不存在,则先创建

hget    # 获取表中key 对应的field

hmset   # 同时设置多个键值对

hmge    # 同时获取多个键值对

hdel    # 删除指定表中的某一个键值对

hgetall    # 列出表中的所有键值对
  • 示例
# 在 daboluo 表中创建name zhangsan、name2 lisi、name3 laowang的键值对
hset daboluo name zhangsan name2 lisi name3 laowang

# 获取 daboluo 表中的多个字段
hmget daboluo name name2 name3

# 列出 daboluo 表中所有键和值
HGETALL daboluo

# 删除 daboluo表中的 name2 数据
HDEL daboluo name2

三、list 类型和操作

        list是一个链表结构,主要功能是push、pop、获取一个范围内的所有值等等,操作中key理解为链表的名字。Redis的list类型其实就是一个每个子元素都是string类型的双向链表。我们可以通过push、pop操作从链表的头部或尾部添加删除元素。

lpush     # 在key对应list的头部添加字符串元素。

rpush     # 从尾部添加字符串元素

lpop      # 从尾部删除

rpop      # 从头部删除

lrange    # 从指定链表中获取指定范围的元素

  • 示例
# 创建先入后出的链表结构
LPUSH zs zhangsan 18 man 1888888

# 显示zs链表的内容,0空格-1代表从头写到尾
LRANGE zs 0 -1

# 创建先入先出的链表结构
RPUSH zs1 zhangsan 18 man 1888888

# 从尾部删除 zs1 的数据
lpop zs1

四、set 类型及操作

        set是集合,他是string类型的无序集合。Set是通过hash table实现的,合/并集 、交集、差集。通过这些操作我们可以实现社交网站中的好友推荐和blog的tag功能。集合不允许有重复值。

sadd        # 添加一个或多个元素到集合中

smembers    # 获取集合里面所有的元素

srem        # 从集合中删除指定的一个或多个元素

spop        # 随机从集合中删除一个元素,并返回

scard       # 获取集合里面的元素个数

sdiff       # 返回集合1与集合2的差集。以集合1为主

sinter      # 获得两个集合的交集

sunion      # 获得指定集合的并集
  • 示例
# 添加多个元素到集合中
sadd teacher zhaqngsan lisi wangwu 

sadd num1 1 2 3 4

sadd num2 3 4 5 6

# 取交集
SINTER num1 num2

# 取并集
SUNION num1 num2

# 以num1为参照物取差集
SDIFF num1 num2

# 以num2为参照物取差集
以num2为参照物取差集

# 统计集合里的元素个数
SCARD teacher

# 从集合中删除指定的一个或多个元素
srem num1 1 2

# 获取集合里所有的元素
# 没有按顺序排序
SMEMBERS num1

SMEMBERS num2

SMEMBERS teacher

# 随机删除集合里的一个元素
spop teacher

五、zset类型及操作

        zset是set的一个升级版本,它在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序。可以理解为有两列的mysql表,一列存的value,一列存的顺序。操作中key理解为zset的名字。

zadd    # 向一个指定的有序集合中添加元素,每一个元素会对应的有一个分数。
        # 可以指定多个分数/成员组合。如果一个指定的成员已经在对应的有序集合中了.
        # 那么其分数就会被更新成最新的,并且该成员会重新调整到正确的位置,以确保集合有序。
        # 分数的值必须是一个表示数字的字符串。

zrange  # 返回有序集合中,指定区间内的成员。其中成员按照score(分数)值从小到大排序。
        # 有相同score值的成员按照字典顺序来排列。

zrem    # 删除有序集合中指定的值

zcard   # 返回有序集合元素的个数
  • 示例
# 创建有序集合
zadd zteacher 1 zhangsan 2 lisi 0 wangwu 2 laowang 1 laoli 0 laoliu

# 显示zteacher表里全部元素
zrange zteacher 0 -1

# 和分数一起显示
zrange zteacher 0 -1 withscores

# 添加值
zadd zteacher 1 xbz

# 显示全部元素
zrange zteacher 0 -1

# 统计zteacher有序集合元素的个数
ZCARD zteaacher

六、其他相关命令

keys        # 按照键名查找指定的键。支持通配符(* ?等)

exists      # 确认一个键是否存在(1表示存在)

del         # 删除一个键(通用)

expire      # 设置一个键(已存在)的过期时间,如果键已经过期,将会被自动删除

ttl         # 以秒为单位,返回指定键的剩余有效时间
	        # 当 key 不存在时,返回 -2 。
	        # 当 key 存在但没有设置剩余生存时间时,返回 -1 。
	        # 否则,以秒为单位,返回 key 的剩余生存时间。

select      # 选择一个数据库,默认连接的数据库是0,可以支持共16个数据库。
            # 在配置文件中,通过databases 16 关键字定义。

move        # 将当前数据库的键移动到指定的数据库中

type        # 返回键的类型

dbsize      # 返回当前库中键的数量(所有类型)

save        # 保存所有的数据。很少在生产环境直接使用SAVE 命令.
            # 因为它会阻塞所有的客户端的请求,可以使用BGSAVE 命令代替. 
            # 如果在BGSAVE命令的保存数据的子进程发生错误的时.
            # 用 SAVE命令保存最新的数据是最后的手段。

info        # 获取服务器的详细信息

config get  # 获取redis服务器配置文件中的参数。支持通配符

flushdb     # 删除当前数据库中所有的数据

flushall    # 删除所有数据库中的所有数据
  • 示例
# 删除无序集合num1
del num1

# 查看所有集合
keys *

# 设置倒计时30秒
EXPIRE name 30

# 查看倒计时还有多久
ttl name

# 选择一个数据库,16和17无法选择,因为从0到15一共16个数据库
select 17
select 16
select 15		

# 将teacher库移动到15库下
move teacher 15	
keys *
select 15

# 查看teacher集合的类型,为set无序集合
type teacher

# 查看表中的元素
SMEMBERS teacher

# 显示当前库中键的数量
DBSIZE
keys *

# 手动立刻保存,否则只会,达到配置文件里的配置才能保存
save

# 查看保存的信息
cd /usr/local/redis/data
# 查看文件类型
file *
more redis.aof.1.incr.aof
file redis.rdb
cat redis.rdb

# 获取服务器详细信息
redis-cli info
#查看cpu的详细信息
infor cpu		
#查看当前是什么角色(主数据库或从数据库)	
info replication

# 获取redis服务器配置文件中的参数。支持通配符
redis-cli
config get *
# 查询daemonize的值
config get daemonize
# 查看dir的存放目录
congif get dir
# 不用登录到服务器里,实现同样的效果
redis-cli dir

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

硬件9、常用PCB封装的直接调用

拷贝过来之前的封装(适用于之前的项目创建过项目的,可以多个) ctrlA全选,然后ctrlc进行全部复制 然后切换到要使用的封装库里面进行粘贴 复制 在其他库文件中粘贴 单独复制一个封装 在PCB中使用ctrlc进行复制 切换到库中&…

保理业务风险评级及尽调

企业评级的作用 对核心企业进行评级,是为了初步判断核心企业(买方)的基本状况,确保开展业务后核心企业(买方)的还款能力;对融资企业(卖方)进行评级,是为了判…

消息队列经典应用场景

笔者心中,消息队列,缓存,分库分表是高并发解决方案三剑客。 在职业生涯中,笔者曾经使用过 ActiveMQ 、RabbitMQ 、Kafka 、RocketMQ 这些知名的消息队列 。 这篇文章,笔者结合自己的真实经历,和大家分享消息队列的七种经典应用场景。 1 异步&解耦 笔者曾经负责某电…

SIP-6002D对讲终端使用说明 SIP对讲求助终端

SIP对讲终端SIP-6002D双按键是一款采用了ARMDSP架构;配置了麦克风输入和扬声器输出,SIP-6002D带两路寻呼按键,可实现SIP对讲功能,作为SIP对讲的终端,主要用于银行、部门机构、调度室、化工厂、钢铁厂、矿井、风电等场所…

彩信群发为奢侈品行业带来了哪些性化体验与互动?

彩信群发作为一种创新的营销手段,为奢侈品行业带来了诸多个性化体验与互动的机会。以下是一些具体的体现: 首先,彩信群发为奢侈品品牌提供了丰富的创意展示空间。通过嵌入高质量的图片、短视频和音频,品牌可以全方位、多角度地展示…

Vue——高德地图

1.官网上需要注册并登录高德地图开放平台,申请密钥(如图1)。(高德地图官网)选择Web端,添加成功后,可以获取到(图2)key和密钥 2.Vue项目终端安装地图加载包 npm i amap/amap-jsapi-loader --s…

6.二叉树——3.搜索树

二叉搜索树BST的特色 左<根<右中序序列有序 二叉搜索树构造 树为空&#xff0c;新结点作为根树不空&#xff0c;新结点与树根比大小 大往右走&#xff0c;小往左走 新结点插入空位 例题 代码 #include <cstdio> #include <string> #include <map>…

目标检测——交通专用车辆数据集

一、重要性及其意义 目标检测在交通管理领域&#xff0c;特别是在交通专用车辆数据集的构建上&#xff0c;具有显著的重要性和深远的意义。以下是对其重要性及其意义的详细探讨&#xff1a; 提升交通管理效率&#xff1a;通过精准的目标检测&#xff0c;交通管理部门可以迅速识…

regexp_substr()

1、基本语法 REGEXP_SUBSTR(String, pattern, position,occurrence, modifier) String&#xff1a;需要进行处理的字符串。 pattern&#xff1a;正则表达式。 position&#xff1a;起始位置&#xff08;从字符串的第几个开始&#xff0c;默认为1&#xff0c;注&#xff1a;…

基于springboot实现社区团购系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现社区团购系统演示 摘要 本课题是根据用户的需要以及网络的优势建立的一个社区团购系统&#xff0c;来满足用户团购的需求。 本社区团购系统应用Java技术&#xff0c;MYSQL数据库存储数据&#xff0c;基于Spring Boot框架开发。在网站的整个开发过程中&…

短剧APP搭建必备技巧大揭秘

在当今数字化时代&#xff0c;随着人们对视频内容的需求不断增长&#xff0c;短剧APP成为一种备受关注的新兴形式。短剧APP提供了一个平台&#xff0c;让用户可以快速、便捷地浏览各种精彩的短剧内容&#xff0c;吸引了大批年轻用户的关注。短剧APP的搭建不仅可以满足用户对短剧…

JAVA面试八股文之集合

JAVA集合相关 集合&#xff1f;说一说Java提供的常见集合&#xff1f;hashmap的key可以为null嘛&#xff1f;hashMap线程是否安全, 如果不安全, 如何解决&#xff1f;HashSet和TreeSet&#xff1f;ArrayList底层是如何实现的&#xff1f;ArrayList listnew ArrayList(10)中的li…

Coursera自然语言处理专项课程03:Natural Language Processing with Sequence Models笔记 Week02

Natural Language Processing with Sequence Models Course Certificate 本文是https://www.coursera.org/learn/sequence-models-in-nlp 这门课程的学习笔记&#xff0c;如有侵权&#xff0c;请联系删除。 文章目录 Natural Language Processing with Sequence ModelsWeek 02…

eclipse导入svn项目

1、配置maven和jre 2、用svn引入项目, 3一直点击next,到最后选完成。 4、从svn引入成功后&#xff0c;右键项目名点delete&#xff0c;弹窗出现的框不选&#xff0c;然后再import,点maven,点(existing maven projects)已存在maven项目&#xff0c;选择该文件等待引入完成…

免费VPS/云服务器整理汇总

随着互联网的普及和云计算技术的飞速发展&#xff0c;越来越多的人开始尝试使用VPS&#xff08;Virtual Private Server&#xff0c;虚拟专用服务器&#xff09;或者云服务器来部署自己的在线业务。本文将对免费VPS/云服务器进行整理汇总&#xff0c;助力大家轻松开启云计算之旅…

硬件7、AD设置封装如何画IC芯片以及芯片的散热引脚

首先查看引脚的尺寸&#xff0c;引脚的宽度为b&#xff0c;选择b的Max&#xff1a;0.5mm&#xff0c;然后计算引脚的长度&#xff1a;(E-E1)/2&#xff0c;也就是(6.1-3.95)/2约等于1mm&#xff0c;填写参数可以填1.2mm&#xff0c;尽量大一点 可以看到两个引脚的中心点在水平…

【物联网】Qinghub opc-ua 连接协议

基础信息 组件名称 &#xff1a; opcua-connector 组件版本&#xff1a; 1.0.0 组件类型&#xff1a; 系统默认 状 态&#xff1a; 正式发布 组件描述&#xff1a;通过OPCUA连接网关&#xff0c;通过定时任务获取OPCUA相关的数据或通过执行指令控制设备相关参数。 配置文件&a…

刷题之动态规划

前言 大家好&#xff0c;我是jiantaoyab&#xff0c;开始刷动态规划的题目了&#xff0c;要特别注意初始化的时候给什么值。 动态规划5个步骤 状态表示 &#xff1a;dp数组中每一个下标对应值的含义是什么->dp[i]表示什么状态转移方程&#xff1a; dp[i] 等于什么1 和 2 是…

JimuReport积木报表 v1.7.4 公测版本发布,免费的JAVA报表工具

项目介绍 一款免费的数据可视化报表&#xff0c;含报表和大屏设计&#xff0c;像搭建积木一样在线设计报表&#xff01;功能涵盖&#xff0c;数据报表、打印设计、图表报表、大屏设计等&#xff01; Web 版报表设计器&#xff0c;类似于excel操作风格&#xff0c;通过拖拽完成报…

2024 蓝桥打卡Day25

CCFCSP算法练习 202305-1 重复局面 202305-2 矩阵运算 202303-1 田地丈量 202303-2 垦田计划