Redis的基础命令

1. 前言

今天的目的主要是为了学习下,Redis基础命令。无论是处于什么阶段的技术人,基础永远都是重中之重。

2. 开始

2.0 帮助文档

  • 查看各种分类
    在这里插入图片描述
    可以在redis客户端输入help @ 之后一直不停的按tab键。 就会不停的切换分类

  • 查看某一项命令
    在这里插入图片描述

2.1 全局命令

2.1.1 keys

但是我们在生产环境并不建议使用此命令。因为此命令会将所有的key值都罗列出来。对Redis的性能有很大的影响。所以一般我们建议使用dbsize

keys [pattern]
# keys *
# keys l*

在这里插入图片描述

2.1.2 dbsize

此命令可以得到key的个数。

dbsize

在这里插入图片描述

2.1.3 exists

查看指定key 是否存在. 如果存在直接返回1, 反之就是返回0

exists key [...key]
# exists username

在这里插入图片描述

2.1.4 del

删除指定的key

del key [...key]
# del age

在这里插入图片描述

2.1.5 expire

  • -1 键没有设置过期时间
  • -2 该键已经过期
2.1.5.1 以秒的过期时间
expire [xxx] [x]
# expire username 15 设置15s的过期时间
# ttl username 查看指定键是否过期

在这里插入图片描述

2.1.5.2 指定时间戳过期时间
expireat [xxxx] [x]
# expireat username 1671886639 指定时间戳后失效
  • 可以用ttl 来查看剩余过期时间。单位为秒
  • 可以用pttl 来查看剩余过期时间。单位为毫秒
    在这里插入图片描述
2.1.5.3 以毫秒的过期时间
pexpire [xxx] [x]
# pexpire username 20000 以毫秒为单位 设置username的过期时间

在这里插入图片描述

2.1.5.4 清除键的过期时间
persist [key]
# persist username 将username 过期时间清除

在这里插入图片描述

2.1.5.5 坑!!!!!!
  • 如果给一个key[username]设置了过期时间。
  • 再次给这个key[username] 设置一个新值(在未过期之前)
  • 那么这个key的过期时间就消失了

2.1.6 type

获取指定key的数据类型

type [key]
# type username => string

在这里插入图片描述

2.1.7 randomkey

randomkey
# 随机返回一个key

在这里插入图片描述

2.1.8 rename

  1. 修改key的名称
  2. 如果使用rename的话,修改的新的名称已经存在的话,连同值会被一起覆盖
  3. 如果是使用renamenx的话,修改的新的名称必须不存在
rename [oldName] [newName]
# rename lihh lihh1

在这里插入图片描述

2.2 string 数据类型

2.2.1 set

2.2.1.1 参数
  • key 指定的key
  • value 指定的value
  • ex 设置以秒为单位的过期时间
  • px 设置以毫秒为单位的过期时间
  • nx 键必须不存在才可以设置。用来添加
  • xx 键必须存在才可以设置。 用来修改
2.2.1.2 ex
set username aaa ex 10 # 设置指定的key/value 10后过期

在这里插入图片描述

2.2.1.3 px
set username aaa px 15000

在这里插入图片描述

2.2.1.4 nx
setnx username bbb
# 设置没有key 为 usernam的时候,bbb才能设置成功

在这里插入图片描述

2.2.1.4 xx
set username bbb xx
# 只有key【username】存在的话,使用【xx】才能设置成功

在这里插入图片描述

2.2.2 get

根据指定的名称获取对应的值。如果没有找到对应的key,返回为nil

get [xx]
# get username

在这里插入图片描述

2.2.3 mget

同时获取多个key的值

mget [xxx] [yyy]
# mget username age

在这里插入图片描述

2.2.4 mset

进行批量的值的设置

mset [key] [value] [key] [value]
# mset username aaa age 20

在这里插入图片描述

2.2.5 incr

  1. 进行值的运算,结果无非是分为三种情况:
  2. 如果值不是整数,返回错误
  3. 如果值是整数,返回自增的结果
  4. 如果key不存在,作为0处理返回值为1
  5. 案例:一般用作那种统计数/ 点赞数/ 观看数
incr [name]
# incr count

在这里插入图片描述

2.2.5.1 其他案例

  • incrby 根据指定的值 自增
  • decr 自减
  • decrby 根据指定的值自减
  • incrbyfloat 根据指定的浮点数自增

在这里插入图片描述

2.2.6 append

给指定key的value值 后添加指定的字符串

append [key] [value]
# append username hello

在这里插入图片描述

2.2.7 strlen

返回指定字符串的长度

strlen [key]
# strlen username

在这里插入图片描述

2.2.7 getset

设置并返回原来的值

getset [key] [value]
# getset username bbb

在这里插入图片描述

2.2.8 getrange

获取指定范围内的字符串值

getrange [key] [start] [end]
# getrange username 1 5

在这里插入图片描述

2.2.8 setrange

设置指定范围内的字符串

setrange [key] [offset] [value]
# setrange username 1 bbb

在这里插入图片描述

2.3 hash 数据类型

2.3.1 hset

以HashMap的形式 设置多个key/value 等. 如果已经存在了key值。那么重新设置值相当于追加

hset [key] [field][value] [field][value]
# hset user:1 name aaa age 11

在这里插入图片描述

2.3.2 hget

hget [key][field]
# hget user:1 name
# hget user:1 age

在这里插入图片描述

2.3.3 hdel

hdel [key] [field]
# hdel user:1 age

在这里插入图片描述

2.3.4 hlen

hlen [key]
# hlen user:1

在这里插入图片描述

2.3.5 hexists

判断指定的field 是否存在

hexists [key] [fields]
# hexists user:1 name

在这里插入图片描述

2.3.6 hkeys

hkeys [key]
# hkeys user:1

在这里插入图片描述

2.3.7 hvals

hvals [key]
# hvals user:1

在这里插入图片描述

2.3.8 hgetall

hgetall [key]
# hgetall user:1

在这里插入图片描述

2.4 list 数据类型

  1. 插入的元素是有序的。跟插入的顺序是保持一致的
  2. 但是内部多个元素之前是可以重复的

2.4.1 rpush

从右侧开始插入

rpush [key] [element]...
# rpush list1 a b c

在这里插入图片描述

2.4.2 lpush

从左侧开始插入

lpush [key] [element]...
# lpush list2 a b c d

在这里插入图片描述

2.4.3 lrange

根据坐标 查询指定范围内的值

lrange [key] [start] [end]
# lrange list2 0 -1 表示查询所有

在这里插入图片描述

2.4.4 linsert

在某个元素之前 或是 之后插入新的元素

linsert [key] [before|after] [piovt] [element]
# linsert list2 before b e  在集合list2中 元素b之前插入新的元素e

在这里插入图片描述

2.4.5 lpop

从左侧删除一个元素并且返回元素

lpop [key] [count]
# lpop list2 1 从左侧删除一个元素并且返回

在这里插入图片描述

2.4.6 rpop

rpop [key] [count]
# rpop list2 1

在这里插入图片描述

2.4.7 lrem

lrem [key] [count] [element]
# lrem list1 1 d

在这里插入图片描述

2.4.8 ltrim

进行元素的修剪。将指定的元素进行保留

ltrim [key] [start] [end]

在这里插入图片描述

2.4.9 lset

对指定下标元素的值进行修改

lset [key] [index] [element]
# lset list1 1 c

在这里插入图片描述

2.4.10 lindex

获取指定下标的值

lindex [key] [index]
# lindex list1 1

在这里插入图片描述

2.4.11 llen

llen [key]
# llen list1

在这里插入图片描述

2.4.12 blpop

  1. 阻塞版本的lpop. 可以设置阻塞时间,同时可以将结果设置为0,这样会一直阻塞下去,直到有新的值
  2. blpop后面如果是多个键,那么blpop会从右至左遍历键,一旦有一个键能弹出元素,客户端立即返回

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.4.13 brpop

同上

2.5 set 数据类型

  1. 添加到集合的顺序是无序的
  2. 添加到集合后是去重的,结果不会有重复的值

2.5.1 sadd

sadd [key] [element]...
# sadd s1 a b c d a b c d # 向集合中添加重复的元素,但是结果中没有重复的元素

在这里插入图片描述

2.5.2 srem

删除指定的元素

srem [key] [element]...
# srem s1 a

在这里插入图片描述

2.5.3 scard

查询集合的元素个数

scard [key]
# scard s1

在这里插入图片描述

2.5.4 sismember

sismember [key] [element]
# sismember s1 c

在这里插入图片描述

2.5.5 srandmember

随机返回指定个数的元素

srandmember [key] [count]
# srandmember s1 1

在这里插入图片描述

2.5.6 spop

spop [key] [count]
# spop s1 1 删除并弹出 指定个数的元素

在这里插入图片描述

2.5.7 smembers

smembers [key]
# smembers s1 返回集合s1 的元素列表

在这里插入图片描述

2.5.8 sinter

获取两个集合的交集
在这里插入图片描述

2.5.9 sunion

获取两个集合的并集

在这里插入图片描述

2.5.10 sdiff

  1. 获取两个集合的差集
  2. 就是以第一个集合为依据,在其余的结合中寻找对应的值

在这里插入图片描述

2.6 zset 数据类型

  1. 是一个去除重复数据的集合
  2. 通过设置分数字段后,来对集合进行排序
  3. 所以综合就是 既不重复 又是有序的

2.6.1 zadd

zadd [key] [score] [element]...
# zadd z1 90 aa 40 bb 99 cc

在这里插入图片描述

2.6.2 zcard

获取集合的个数

zcard [key]
# zcard z1

在这里插入图片描述

2.6.3 zscore

获取某个member的分数

zscore [key] [member]

在这里插入图片描述

2.6.4 zrank

查询某个member的排名

zrank [key] [member]
# zrank z1 cc

在这里插入图片描述

2.6.5 zrem

删除某个member

zrem [key] [member]
# zrem z1 cc

在这里插入图片描述

2.6.6 zincrby

增加某个member的分数

zincrby [key] [score] [member]
# zincrby z1 5 aa

在这里插入图片描述

2.6.7 zrange

按照指定的范围从小到大 返回member

zrange [key] [min] [max] [withscores]
# zrange z1 0 3 withscores

在这里插入图片描述

2.6.8 zremrangebyscore

删除指定返回的member

zremrangebyscore [key] [min] [max]
# zremrangebyscore z1 10 30

在这里插入图片描述

2.6.9 zinterstore

跟Set集合的方式保持一致

2.6.10 zunionstore

跟Set集合的方式保持一致

2.7 bitmaps 数据类型

2.7.1 setbit

  • 根据offset位置来设置二进制的值。设置比特值.
  • 此时设置的是比特的位置,不是字节的位置。
  • 一个字节是8个比特位
setbit [key] [offset] [value]
# setbit k1 0 1

在这里插入图片描述
通过上述截图可以看到。所以设置了两次值,但是长度任然是1,因为设置两次的位置都是在同一个字节内

2.7.2 getbit

根据offset位置来获取对应的二进制值

getbit [key] [offset]
# getbit k1 0

在这里插入图片描述

2.7.3 bitcount

获取Bitmaps指定范围值为1的个数。是字节范围,不是比特范围

bitcount [key] [start] [end]
# bitcount k1 0 0

上述的位置是字节位置,不是比特位置

在这里插入图片描述

2.7.4 bitop

是一个复合操作,它可以做多个Bitmaps 的 and(交集)or(并集)not(非)xor(异或)操作并将结果保存在destkey中

bitop [operation] [destkey] [key1]...
# bitop or dest k1 k2

在这里插入图片描述

2.7.5 bitpos

计算Bitmaps中第一个值为targetBit 的偏移量

bitpos [key] [bit] [start] [end]
# bitpos k1 1 0 0

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值