引言
使用编程语言和框架太多了,基础命令都忘记的差不多了,keys * 和 get * 都混淆了,获取所有键我居然用了get *,复习一下。
总结思路
结合Redis-GUI和Redis-CLI配合方式校验和复习。
系统命令
ping测试连通性,响应值为PONGshutdown [NOSAVE|SAVE]关闭服务端 参数存在NOSAVE和SAVE,也就是持久化操作select index切换数据库,redis一共存在16个数据库[0-15] 通过select选择数据库,类似于use命令move key db移动key到db,也就是把选择的键移动到另一个数据库
常用命令
keys
keys pattern
keys * # 获取所有键

此时如果我们尝试用pattern做一些扩展操作。
比如我们创建了con-01,con-02,con-03 键,并且通过keys con-*获取所有的con-开头的键

dbsize
dbsize # 获取键的个数

exists
测试时的key结构
127.0.0.1:6379> keys *
1) "a"
2) "aa"
3) "con00"
4) "con-02"
5) "con-01"
6) "b"
7) "con-03"
exists key [key ...] # 键是否存在,可以写多个
返回值为存在的个数,如果exists后面加一个key, 返回值为1,那么说明这个键存在,返回值0则不存在
如果exists后面加两个key,返回值为0,这两个键都不存在,返回值为1,说明这两个键中只有一个键存在,2的话是都存在

set
set key value [expiration EX seconds|PX milliseconds] [NX|XX] 设置值
一般不设置过期时间可以直接set key value,如果需要同时设置过期时间,如下图所示

get
get key # 获取键的值 # 返回值为键的值,如果返回(nil)说明键不存在

mset mget
mset key value [key value ...] #批量设置值
mget key [key ... ] #批量获取值
批量设置值和获取值

del
顾名思义,删除键,以下为测试时键的结构
1) "a"
2) "aa"
3) "con00"
4) "con-02"
5) "con-01"
6) "b"
7) "con-03"
del key [key ...]
返回值为删除key成功的个数,如果del 后面的key 不存在,不会报错,只是会在返回值有所体现。
比如我执行del a b c 根据上面的结构,我不存在c这个键,因此返回值为2

127.0.0.1:6379> keys *
1) "aa"
2) "con00"
3) "con-02"
4) "con-01"
5) "con-03"
type
查看键的类型,高级语言中我们知道typeof,type,其实和他们差不多。
type key
返回值:如果键存在,则返回键的类型,否则返回none
ttl
获取过期时间
ttl key
返回值-2键不存在(有些版本可能返回零), -1为永不过期,否则为剩余存活时间(秒)

expire 和 persist
expire key seconds # 设置过期时间
persist key # 设置永不过期

rename
rename key newkey # rename 旧名 新名

setnx
setnx key value 如果键不存在则创建,返回值1为创建成功,0为键已经存在

setex
setex key seconds value
给一个键赋值,如果存在则重新赋值,并且赋予过期时间

incr /decr
incr key # 键的值递增1
decr key # 键的值递减1
返回值时操作后的值

incrby / decrby
incrby key increment # 键的值递增 increment
decrby key increment # 键的值递减 increment
这样就可以递增指定的数了

append
append key value # 字符串后面追加字符

strlen
strlen key # 获取键值的长度
通过可视化工具设置一个中文字符串,获取其文本长度

看来一个中文字符占用三个字节

getrange
getrange key start end # 截取字符串,start和end为索引

sadd 和 smembers
set 集合是无序且不重复的列表,通过sadd和smembers进行增加和查看操作
sadd key member [member ...] # 添加元素到key中
smembers key # 查看set列表中的元素

SISMEMBER
SMEMBERS key member # 判断元素是否在key中,返回值0为不在,1为在

scard
sacrd key # 获取set中元素的个数

srem
srem key member [member ...] # 删除set中的元素,可以一次性删除多个

spop
SPOP key [count] # 随机删除set中的任意个数元素,并且返回出来

zadd
zset是有序集合,我感觉和hash很像
zadd key [NX|XX] [CH] [INCR] score member [score member ...] # 添加zset元素

zscore
zscore key member # 查看zset元素所对应成员的值

zrange
zrange key start stop [WITHSCORES] # 获取zset中一定范围内的元素


zcard
zcard key # 获取zset元素个数

zcount
ZCOUNT key min max # 获取分数在一定范围内的元素个数

zrem
zrem key member [member ...] # 删除集合中指定元素

zrank
zrank key member # 获取成员索引信息

ZINCRBY
ZINCRBY key increment member # 对指定元素索引值的增减
这里不存在decr方法,所以increment部分通过负数进行递减操作

lpush rpush
列表左\右插入元素
lpush key value [value ...] # 往队列头部插入一个元素
rpush key value [value ...] # 往队列尾部插入一个元素

lrange
lrange key start stop # 获取列表指定范围内的元素

lset
lset key index value # 修改指定索引的值

llen
llen key # 获取列表元素个数

lrem
lrem key count value # 从列表中移除指定元素
count 可以这么理解它
当count = 0 时,删除所有value
当count > 0 时,删除左侧count个value
当count < 0 时,删除右侧count个value


ltrim
ltrim key start stop # ⚠️保留范围内元素

hset hmset
hset key field value # 为字段设置值,实际上也可以设置多个
hmset key field value [field value ...] # 设置多个字段及值
hsetnx key field value # 当字段不存在时赋值


hget hmget hgetall
hget key field # 获取字段的值
hmget key field [field ...] # 获取多个键的值
hgetall key 获取所有键和值


hkeys hvals
hkeys key # 获取包含的所有键
hvals key # 获取包含的所有键对应的值


hexists
hexists key field # 判断集合中某个键值是否存在

hlen
hlen key # 获取key的个数

hincrby
hincrby key field increment # hash散列中某个键对应的值递增

hdel
hdel key field [field ...] # 删除散列中的键

评论 0
还没有评论,来说点什么吧。