Redis常用命令

1、Redis操作命令

1)沟通命令,查看状态

启动客户端,输入ping,Redis给我们返回PONG,表示服务正常运行

127.0.0.1:6379> ping
PONG

2)查看当前数据库中key的数目

dbsize:作用返回当前操作的数据库中的key的数量,返回值类型为integer

127.0.0.1:6379> dbsize
(integer) 3

3)切换数据库

Redis默认操作16个数据库,在redis.cong配置文件中可以看到
Redis常用命令_第1张图片使用select index可以切换数据库,默认使用的是db0

127.0.0.1:6379> select 2
OK
127.0.0.1:6379[2]> 

4)删除库中的数据

语法:flushdb
作用:删除当前操作的数据库中的内容
Redis常用命令_第2张图片语法:flushall
作用:删除所有的库中的数据

5)退出客户端与服务端的连接

exit 或者 quit

127.0.0.1:6379> exit
[root@localhost redis-5.0.0]# 

2、Redis中Key命令

1)通配符

语法:keys pattern
作用:查找所有符合pattern的key,pattern可以使用统配符

  • *:表示0-多个字符
  • ?: 表示单个字符

示例①:显示所有的key

127.0.0.1:6379> keys *
1) "address"
2) "age"
3) "name"

示例②:使用?表示单个字符

127.0.0.1:6379> keys na?e
1) "nage"
2) "name"

示例③:使用*表示0-多个字符

127.0.0.1:6379> keys na*e
1) "name"
2) "nage"
3) "natte"

2) exists

语法:exists key [key…]
作用:判断key是否存在
返回值:整数,存在key返回1,不存在返回0;使用多个key,返回key的数量

示例①:检查指定key是否存在

127.0.0.1:6379> exists name
(integer) 1
127.0.0.1:6379> exists nams
(integer) 0

示例②:检查多个key

127.0.0.1:6379> keys *
1) "name"
2) "nage"
3) "natte"
4) "address"
5) "age"
# 返回的是数据库中存在的key值,不存在不计算在内
127.0.0.1:6379> exists name nage natte sss 
(integer) 3

3)expire

语法:expire key seconds
作用:设置key的生存时间,超过时间key自动删除;单位是秒;
返回值:设置成功返回1,其他情况是0

示例①:设置倒计时5秒
Redis常用命令_第3张图片

4)ttl

语法:ttl key
作用:以秒为单位,返回key的剩余生存时间
返回值:

● -1 :没有设置 key 的生存时间, key 永不过期

● -2 :key 不存在

● 数字:key 的剩余时间,秒为单位

示例①:设置countdown的过期时间是10秒,查看剩余时间
Redis常用命令_第4张图片

5)type

语法:type key
作用: 查看key所存储的数据类型
返回值:用字符串表示的数据类型
● none (key 不存在)

● string (字符串)

● list (列表)

● set (集合)

● zset (有序集)

● hash (哈希表)

示例①:查看存储字符串的name

127.0.0.1:6379> get name
"zs"
127.0.0.1:6379> type name
string

示例②:查看不存在的key

127.0.0.1:6379> type aaa
none

6)del

语法:del key [key…]
作用:删除指定的key,不存在的key进行忽略;
返回值:数字,删除的key的数量

示例①: 删除指定的key

127.0.0.1:6379> keys *
1) "name"
2) "nage"
3) "natte"
4) "address"
5) "age"
# 删除不存在的key返回0
127.0.0.1:6379> del aaa
(integer) 0
# 删除指定的一个key,返回1
127.0.0.1:6379> del name
(integer) 1
# 删除指定的key数组,返回删除的个数3
127.0.0.1:6379> del nage natte age
(integer) 3

3、Redis数据类型

1)字符串类型 String

字符串类型是 Redis 中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据,序列化后的数据,JSON 化的对象甚至是一张图片。最大 512M。
Redis常用命令_第5张图片

2)哈希类型 hash

Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
Redis常用命令_第6张图片

3)列表类型 list

Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
在这里插入图片描述

4) 集合类型 set

Redis 的 Set 是 string 类型的无序集合,集合成员是唯一的,即集合中不能出现重复的数据.

Redis常用命令_第7张图片

5)有序集合类型zset(sorted set)

Redis 有序集合 zset 和集合 set 一样也是 string 类型元素的集合,且不允许重复的成员。不同的是 zset 的每个元素都会关联一个分数(分数可以重复),redis 通过分数来为集合中的成员进行从小到大的排序。

Redis常用命令_第8张图片

4、Redis字符串类型String

1)set

语法:set key value
作用:将字符串值设置到key中
返回值:设置成功返回OK
示例:

# 设置key为name,value为张三
127.0.0.1:6379> set name zhangsan
OK
127.0.0.1:6379> keys *
1) "name"
2) "address"
# 重新对name进行set赋值,会覆盖之前的值
127.0.0.1:6379> set name lisi
OK
# 此时name的值为lisi
127.0.0.1:6379> get name
"lisi"

2)get

语法:get key
作用:获取数据库中key的值
返回值:key对应的value值
示例:

127.0.0.1:6379> get name
"lisi"

3)incr

语法:incr key
作用:将 key 中储存的数字值加 1,如果 key 不存在,则 key 的值先被初始化为 0 再执行incr 操作(只能对数字类型的数据操作)
示例①:创建index,执行加1操作

127.0.0.1:6379> incr index
(integer) 1
127.0.0.1:6379> get index
"1"

示例②:对非数字的值是不行的

127.0.0.1:6379> incr name
(error) ERR value is not an integer or out of range

4)decr

语法:decr key
作用:将 key 中储存的数字值减1,如果 key 不存在,则么 key 的值先被初始化为 0 再执行 decr 操作

示例①:不存在的key,初始值为0,在减1

127.0.0.1:6379> decr myindex
(integer) -1

示例②:对已经存在的值,减3

127.0.0.1:6379> get age
"11"
127.0.0.1:6379> decr age
(integer) 10
127.0.0.1:6379> decr age
(integer) 9
127.0.0.1:6379> decr age
(integer) 8
127.0.0.1:6379> get age
"8"

incr,decr 主要作用在关注人数、点赞量等上

5)append

语法:append key value
作用:如果 key 存在, 则将 value 追加到 key 原来旧值的末尾如果 key 不存在, 则将 key 设置值为 value
返回值:追加后的字符串总长度

示例①:追加内容到已经存在的key

127.0.0.1:6379> get name
"lisi"
127.0.0.1:6379> append name zhenshuai
(integer) 13
127.0.0.1:6379> get name
"lisizhenshuai"

示例②:追加内容到不存在的key

127.0.0.1:6379> keys *
1) "myindex"
2) "name"
3) "index"
4) "address"
5) "age"
127.0.0.1:6379> append hobby read
(integer) 4
127.0.0.1:6379> get hobby
"read"

6)strlen (string length)

语法:strlen key
作用:返回 key 所储存的字符串值的长度

  • 如果key存在,返回字符串值的长度
  • key不存在,返回0

示例①:计算已经存在的key的字符串长度

127.0.0.1:6379> get name
"lisizhenshuai"
127.0.0.1:6379> strlen name
(integer) 13

示例②:不存在的key

127.0.0.1:6379> strlen haha
(integer) 0

7)getrange

语法:getrange key start end
作用:获取 key 中字符串值从 start 开始 到 end 结束 的子字符串,包括 start 和 end, 负数表示从字符串的末尾开始, -1 表示最后一个字符
返回值:截取的子字符串

示例①:截取从2-5的字符串

127.0.0.1:6379> get name
"lisizhenshuai"
127.0.0.1:6379> getrange name 2 5
"sizh"

示例②:从字符串尾部截取

127.0.0.1:6379> get name
"lisizhenshuai"
127.0.0.1:6379> getrange name -5 -2
"shua"

7)setrange

语法:setrange key offset value
说明:用 value 覆盖(替换)key 的存储的值从 offset 开始,不存在的 key 做空白字符串。
返回值:修改后的字符串的长度

示例①:替换给定的字符串

127.0.0.1:6379> get name
"lisizhenshuai"
127.0.0.1:6379> setrange name 4 zhenchou
(integer) 13
127.0.0.1:6379> get name
"lisizhenchoui"

8)mset

语法:mset key value [key value…]
说明:同时设置一个或多个 key-value
返回值: OK
示例:一次设置多个key-value

127.0.0.1:6379> mset k1 va k2 v2 k3 v3
OK
127.0.0.1:6379> keys *
1) "k3"
2) "k1"
3) "k2"

9)mget

语法:mget key [key …]
作用:获取所有(一个或多个)给定 key 的值
返回值:包含所有 key 的列表
示例:

127.0.0.1:6379> mget k1 k2 k3
1) "va"
2) "v2"
3) "v3"

5、Redis哈希(hash)

1)hset

语法:hset hash 表的 key field value

作用:将哈希表 key 中的域 field 的值设为 value ,如果 key 不存在,则新建 hash 表,执行赋值,如果有 field ,则覆盖值。

返回值:
①如果 field 是 hash 表中新 field,且设置值成功,返回 1
②如果 field 已经存在,旧值覆盖新值,返回 0

示例①:新的field

127.0.0.1:6379> hset people name jack
(integer) 1

示例②:覆盖旧的field

127.0.0.1:6379> hset people name tom
(integer) 0

2)hget

语法:hget key field

作用:获取哈希表 key 中给定域 field 的值

返回值:field 域的值,如果 key 不存在或者 field 不存在返回 nil

实例①:获取存在key的值的某个域的值

127.0.0.1:6379> hget people name
"jack"

示例②:获取不存在的 field

127.0.0.1:6379> hget people age
(nil)

3)hmset

语法:hmset key field value [field value…]

说明:同时将多个 field-value (域-值)设置到哈希表 key 中,此命令会覆盖已经存在的 field,hash 表 key 不存在,创建空的 hash 表,执行 hmset.

返回值:设置成功返回 ok, 如果失败返回一个错误

示例①:同时设置过个field-value
Redis常用命令_第9张图片

使用 redis-desktop-manager 工具查看 hash 表 的数据结构在这里插入图片描述

127.0.0.1:6379> type people
hash

4)hmget

语法:hmget key field [field…]

作用:获取哈希表 key 中一个或多个给定域的值

返回值:返回和 field 顺序对应的值,如果 field 不存在,返回 nil

示例①:获取过个field 的值

127.0.0.1:6379> hmget people name age address
1) "tom"
2) "18"
3) "beijing"

5)hgetall

语法:hgetall key

作用:获取哈希表 key 中所有的域和值

返回值:以列表形式返回 hash 中域和域的值 ,key 不存在,返回空 hash

示例①:返回key对应的所有域和值
Redis常用命令_第10张图片

6)hdel

语法:hdel key field [field…]

作用:删除哈希表 key 中的一个或多个指定域 field,不存在 field 直接忽略

返回值:成功删除的 field 的数量

127.0.0.1:6379> hdel people name age
(integer) 2

7)hkeys

语法:hkeys key

作用:查看哈希表 key 中的所有 field 域

返回值:包含所有 field 的列表,key 不存在返回空列表

示例①:查看people所有的域名称

127.0.0.1:6379> hkeys people
1) "address"

8)hvals

语法:hvals key

作用:返回哈希表 中所有域的值

返回值:包含哈希表所有域值的列表,key 不存在返回空列表

示例①:显示people哈希表所有域的值

127.0.0.1:6379> hvals people
1) "beijing"

9)exists

语法:hexists key field

作用:查看哈希表 key 中,给定域 field 是否存在

返回值:如果 field 存在,返回 1, 其他返回 0

示例①:查看存在 key 中 field 域是否存在

127.0.0.1:6379> hexists people address
(integer) 1
127.0.0.1:6379> hexists people name
(integer) 0

6、Redis列表list

1)lpush

语法:lpush key value [value…]

作用:将一个或多个值 value 插入到列表 key 的表头(最左边),从左边开始加入值,从左到右的顺序依次插入到表头

返回值:数字,新列表的长度

示例①:将a,b,c插入到mylist列表中

127.0.0.1:6379> lpush mylist a b c 
(integer) 3

在 redis-desktop-manager 显 示在这里插入图片描述

2)rpush

语法:rpush key value [value…]

作用:将一个或多个值 value 插入到列表 key 的表尾(最右边),各个 value 值按从左到右的顺序依次插入到表尾

返回值:数字,新列表的长度

示例:

127.0.0.1:6379> rpush mylist2 a b c
(integer) 3

在 redis-desktop-manager 显 示
在这里插入图片描述

3)lrange

语法:lrange key start stop

作用:获取列表 key 中指定区间内的元素,0 表示列表的第一个元素,以 1 表示列表的第二个元素;start , stop 是列表的下标值,也可以负数的下标, -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。 start ,stop 超出列表的范围不会出现错误。

返回值:指定区间的列表

示例:

127.0.0.1:6379> lrange mylist 0 2
1) "c"
2) "b"
3) "a"

4)lindex

语法:lindex key index

作用:获取列表 key 中下标为指定 index 的元素,列表元素不删除,只是查询。0 表示列表的第一个元素,以 1 表示列表的第二个元素;start , stop 是列表的下标值,也可以负数的下标, -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

返回值:指定下标的元素;index 不在列表范围,返回 nil

示例:返回下标是1的元素

127.0.0.1:6379> lindex mylist 1
"b"

5)llen

语法:llen key

作用:获取列表 key 的长度

返回值:数值,列表的长度; key 不存在返回 0

示例:返回mylist列表的元素个数

127.0.0.1:6379> llen mylist
(integer) 3

6)lrem

语法:lrem key count value

作用:根据参数 count 的值,移除列表中与参数 value 相等的元素, count >0 ,从列表的左侧向右开始移除; count < 0 从列表的尾部开始移除;count = 0 移除表中所有与 value 相等的值。

返回值:数值,移除的元素个数

示例①:删除2个相同的列表元素
Redis常用命令_第11张图片示例②:删除列表中所有的配置的值
Redis常用命令_第12张图片

7)lset

语法:lset key index value

作用:将列表 key 下标为 index 的元素的值设置为 value。

返回值:设置成功返回 ok ; key 不存在或者 index 超出范围返回错误信息

示例:设置下标2的value为haha
Redis常用命令_第13张图片

7、Redis集合set

1)sadd

语法:sadd key member [member…]

作用:将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略,不会再加入。

返回值:加入到集合的新元素的个数。不包括被忽略的元素

示例①:添加单个元素
在这里插入图片描述示例②:添加多个元素

127.0.0.1:6379> sadd myset b c d e
(integer) 4

2)smembers

语法:smembers key

作用:获取集合 key 中的所有成员元素,不存在的 key 视为空集合

示例:查看集合的所有元素

127.0.0.1:6379> smembers myset
1) "c"
2) "a"
3) "d"
4) "b"
5) "e"

3)sismember

语法:sismember key member

作用:判断 member 元素是否是集合 key 的成员返回值:member 是集合成员返回 1,其他返回 0

示例:检查元素是否存在集合中

127.0.0.1:6379> sismember myset a
(integer) 1
127.0.0.1:6379> sismember myset z
(integer) 0

4) scard

语法:scard key

作用:获取集合里面的元素个数

返回值:数字,key 的元素个数。 其他情况返回 0

示例:统计集合中的元素个数

127.0.0.1:6379> scard myset
(integer) 5

5)srem

语法:srem key member [member…

作用:删除集合 key 中的一个或多个 member 元素,不存在的元素被忽略

返回值:数字,成功删除的元素个数,不包括被忽略的元素。

示例:删除一个存在的元素

127.0.0.1:6379> srem myset a
(integer) 1

8、Redis有序集合(sorted set)

1)zadd

语法:zadd key score member [score member…]

作用:将一个或多个 member 元素及其 score 值加入到有序集合 key 中,如果 member

存在集合中,则更新值;score 可以是整数或浮点数

返回值:数字,新添加的元素个数

示例①:创建整数作为score

127.0.0.1:6379> zadd student 80 jack 70 tom 60 jarry
(integer) 3

示例②:创建浮点数作为score

127.0.0.1:6379> zadd test 65.33 html 76.65 java
(integer) 2

2)zrange

语法:zrange key start stop [WITHSCORES]

作用:查询有序集合,指定区间的内的元素。集合成员按 score 值从小到大来排序。 start,

stop 都是从 0 开始。0 是第一个元素,1 是第二个元素,依次类推。以 -1 表示最后一个成员,-2 表示倒数第二个成员。WITHSCORES 选项让 score 和 value 一同返回。

返回值:自定区间的成员集合

示例①:显示集合的全部元素,不显示 score,不使用 WITHSCORES

127.0.0.1:6379> zrange student 0 -1
1) "jarry"
2) "tom"
3) "jack"

示例②:显示集合全部元素,并使用 WITHSCORES

127.0.0.1:6379> zrange student 0 -1 withscores
1) "jarry"
2) "60"
3) "tom"
4) "70"
5) "jack"
6) "80"

3)zrem

语法:zrem key member [member…]

作用:删除有序集合 key 中的一个或多个成员,不存在的成员被忽略

返回值:被成功删除的成员数量,不包括被忽略的成员。

示例①:删除指定的一个成员

127.0.0.1:6379> zrem student jack
(integer) 1
127.0.0.1:6379> zrange student 0 -1
1) "jarry"
2) "tom"

4)zcard

语法:zcard key

作用:获取有序集 key 的元素成员的个数

返回值:key 存在返回集合元素的个数, key 不存在,返回 0

示例:查询集合的元素个数

127.0.0.1:6379> zcard student
(integer) 2

你可能感兴趣的:(redis,redis)