文章目录

  • Redis的常用操作命令
  • 一、Redis的数据库操作
  • 二、数据类型及操作
  • 1、String(字符串):
  • 2、list(链表):
  • 3、hash(哈希):
  • 4、set(集合):
  • 5、sort set:


Redis的常用操作命令

    前面学习在docker中快速拉取redis并运行使用,今天学习redis的基本操作命令。

  • redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库.
  • redis数据类型:string(字符串)、list(链表)、hash(哈希)、set集合、 zsort(有序集合)
  • redis默认有16个数据库,从0开始,15结束,可以通过配置文件修改
  • redis能读的速度是110000次/s,写的速度是81000次/s

一、Redis的数据库操作

如果存取中文显示时是乱码,解决办法是启动客户端时加入 --raw(redis-cli --raw)。
操作命令:

命令

参数

说明

config set requirepass

123

设置登陆密码为123

config set requirepass

‘’

清空登陆密码

config get requirpass

获取登陆密码

auth

123

验证登陆密码

ping

返回pong,连接成功

quit

退出客户端

exit

退出客户端

flushdb

清除当前数据库

flushall

清除所有数据库

keys

*

模糊查询key,*任意通配符

keys


模糊查询key,?通配单个字符

keys

[]

模糊查询key,?通配某个字符

randomkey

随机获取一个key

exists key

查询是否存在该key

type key

查看key的类型

rename

oldkey newkey

重命名key,如果new key存在,则原值会被覆盖

del

key1 key2

删除key,1个和多个,返回删除key的数量

move

key 2

将key移动到数据库2

expire

key 2000

设置key的过期时间,单位秒

pexpire

key 2

设置key的过期时间,单位毫秒

ttl

key

查询key的生命周期,返回秒,不存在的key、已经过期的key返回-2;永久有效的key,返回-1。

pttl

key

查询key的生命周期,返回毫秒,不存在的key、已经过期的key返回-2;永久有效的key,返回-1。

persist

key

将指定的key设置为永久有效

二、数据类型及操作

1、String(字符串):

命令

参数

说明

set

key value

创建key和对应的value

set

key value ex 60

创建key和value,并设置过期时间为60秒

set

key value px 60

创建key和value,并设置过期时间为60毫秒

setex

key 60 value

创建key和value,并设置过期时间为60毫秒

set

key value nx

key不存在时,创建key和value

set

key value xx

key存在时,创建key和value

setnx

key value

key不存在时,创建key和value(没有setxx命令)

get

key

获取key的值

mset

key1 value1 key2 value2

同时创建多个键值

getset

key value

赋新的值并获取当前值

setrange

key 1 value

使用value覆盖key的值,从第1个开始

getrange

2 3

范围获取字符串,开始2,结束3,下标左数从0开始,右数从-1开始

incr

key

key的值+1,值必须是数字才能加

incrby

key 20

将key的值增加20

incrbyfloat

key 2.3

将key的值增加2.3(浮点数)

decr

key

key的值-1

decrby

key 10

将key的值减10

decrbyfloat

key 2.5

将key的值减2.5(浮点数)

append

key value

字符串拼接,在结尾处追加value

2、list(链表):

从左侧插入数据:lpush key vaule1 value2
从右侧插入数据:rpush key vaule1 value2
只列出左侧命令,右侧l替换成r即可:

命令

参数

说明

lpush

key vaule1 value2

向链表左边添加多条数据,返回其大小

lpushx

key value

同上,当key存在时才添加

lrange

key start end

查看list在[start ,end]之间的数据,取出全部数据:lrange key 0 -1

llen

key

查看list的大小

lpop

key

返回并删除链表头元素

rpop

key

返回并删除链表尾部元素

lindex

key index

返回索引为index的值

linsert

key after或before v1 v2

在v1之后或之前添加值为v2的元素

lset

key index value

设置index位的值

blpop

key timeout

阻塞的弹出第一个元素且返回该元素值。在超时时间(秒)内阻塞直到有值

brpoplpush

从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止

ltrim

key start end

只保留在[start,end]区间的数,其余的删除,下标 0 表示列表的第一个元素,-1 表示列表的最后一个元素

lrem

key count value

删除count个与value相同的值,

  • count > 0 : 从表头开始向表尾搜索,移除与 value相等的元素,数量为 count。
  • count < 0 : 从表尾开始向表头搜索,移除与 value相等的元素,数量为 count的绝对值。
  • count = 0 : 移除表中所有与 value相等的值。
3、hash(哈希):
hash是一个string类型的field和value的映射表,hash特别适合用于**存储对象**。

命令

参数

说明

hset

user name tom

创建key为user ,域为name 值为tom的数据

hmset

key f1 v1 f2 v2

同时设置多个字段和值

hget

user name

获取key为user,field为name的值

hmget

key f1 f2…fn

获取多个值

hsetnx

key field value

当键不存在时才设置值

hgetall

user

查看该user下所有的field和value

hincrby

user age 2

给指定的值设置增量(也可为负数,即减量)

hincrbyfloat

user age 2.3

给指定的值设置浮点数增量(也可为负数,即浮点数减量)

hkeys

user

获取user的所有的field

hvals

user

获取user的所有的值

hlen

key

获取哈希字段的数量

4、set(集合):

集合是无序的字符串集合,集合中的值是唯一的、无序的。

命令

参数

说明

sadd

key m1 m2 mn

向一个集合添加多个成员

smembers

key

返回集合的所有成员

sdiff

key1 key2 keyn

返回多个集合的差集

sunion

key1 key2 keyn

返回多个集合的并集

sinter

key1 key2 keyn

返回多个集合的交集

sidffstore

newset key1 key2 keyn

将多个集合的差集(交急sinterstore,并集是sunionstore)存储到另一个集合(这里是newset)

sismember

key member

判断值是否是该集合的成员,是返回1,不是返回0

smove

key1 key2 member

将一个集合的数据移动到另一个集合

srandmember

key count

随机返回指定数量的成员

scard

key

获取集合的大小

srem

key member1 member2

移除一个或多个集合成员

spop

key count

随机返回并删除指定数量的成员

5、sort set:

有序集合由唯一的,不重复的字符串元素组成。有序集合中的每个元素都关联了一个分数(分数值可以是整数值或双精度浮点数)。可以把有序看成hash和集合的混合体,分数即为hash的key。有序集合的成员是唯一的,但分数却可以重复。有序集合中的元素是按序存储的,不是请求时才排序的。

命令

参数

说明

zadd

key s1 v1 s2 v2 sn vn

向有序集合添加多个数据和分数

zrange

key start end [withscores]

查询集合在区间[start,end]的数据,withscores显示分数,默认升序(降序zrevrange)

zcard

key

查看zset的成员数

zcount

key min max

返回集合的分数在区间[min,max]的成员数+inf表示正无穷,-inf表示负无穷

zincrby

key num value

对zset对应的value的分数进行增加(增量值为num)

zinterstore

newzset keynums key1 key2 ···

取keynums个zset取交集(并集zunionstore)存储到一个新的有序集合(这里指newzset)

zrangebylex

key min max

返回指定字典区间的值

zrangebyscore

key min max

通过分数返回有序集合指定区间内的成员

zrank

key member

返回指定值的索引

zrem

key member1 member2

删除指定成员

zremrangebylex

key min max

通过字典区间删除

zremrangebyrank

start end

通过索引区间删除

zremrangebyscore

key min max

通过分数区间删除

zlexcount

key min max

计算有序集合中指定字典区间内成员数量。

  • 成员名称前需要加 [ 符号作为开头, [ 符号与成员之间不能有空格(除了[ 还有(和数学上的区间一个道理)
  • 可以使用 - 和 + 表示得分最小值和最大值