Redis的常用命令

启动和连接

启动命令

./redis-server.exe redis.windows.conf

连接本机的redis

redis-cli

连接指定的ip、端口的redis,-h是ip地址,-p是端口号

redis-cli -h 192.168.200.146 -p 6379

如果redis配置文件中,设置了密码,如123456,则添加-a参数

redis-cli -h 192.168.200.146 -p 6379 -a 123456

退出redis-cli

exit

使用redis-cli,停止redis

redis-cli shutdown

操作命令

字符串

设置指定的key-value

# 语法
set key value

# 示例
set name zhangsan

获取指定的key

# 语法
get key

# 示例
get name

设置指定的key-value,并设置key的过期时间,单位为秒

# 语法
setex key seconds value

# 示例,设置name,并在5秒后过期
setex name 5 zhangsan

只有在key不存在时,才设置key-value

# 语法
setnx key value

# 示例
setnx age 25

删除指定的key,若有多个,则用空格隔开

# 语法
del key

# 示例
del name age

Hash哈希

  • Hash类型,也叫散列,其value值是一个无序的字典,类似Java中的HashMap
  • key是字符串,value值由field和小value组成,简称key为大key,field为小key

设置哈希中的field和value

# 语法
hset key field value

# 示例
hset user name zhangsan
hset user age 18

获取哈希中指定field的value值

# 语法
hget key field

# 示例
hget user name
hget user age

获取哈希中指定field中的所有key值

# 语法
hkeys key

# 示例
hkeys user

获取哈希中指定field中的所有value值

# 语法
hvals key

# 示例
hvals user

删除哈希中的某个field

# 语法
hdel key field

# 示例
hdel user name

有序列表List

  • 列表List,与Java中的LinkedList类似,是一个双向链表结构,支持正向检索,也支持反向检索
  • 特点
    • 有序
    • 元素可以重复
    • 插入和删除快
    • 查询速度一般

从左边,将一个或多个值,插入到列表的头部,多个值用空格隔开

# 语法
lpush key value1 value2

# 示例
lpush arrays zhangsan

查询列表中指定范围的元素

  • 索引从0开始,区间是包前又包后
  • start是开始位置,stop为结束位置,0代表从第一个元素开始,-1代表是元素的末尾
# 语法
lrange key start stop

# 示例
lrange arrays 0 -1

从右边,将一个或多个值,插入到列表的尾部,多个值用空格隔开

# 语法
rpush keys value1 value2

# 示例
rpush arrays Barry Wally

获取列表的长度

# 语法
llen key

# 示例
llen arrays

从左边,删除列表的元素,并获取被删除的元素

# 语法
lpop key

# 示例
lpop arrays

从右边,删除列表元素,并获取被删除的元素

# 语法
rpop key

# 示例
rpop arrays

从右边,删除列表元素,如果列表为空,则阻塞列表到到达超时时间

# 语法
brpop key timeount

# 示例
brpop arrays 3

无序集合Set

  • 集合Set,结构和Java的HashSet类似
  • 特点
    • 无序
    • 元素不可重复
    • 查找快
    • 支持交集、并集、差集(集合之间,不同的元素)等功能

向Set中,添加元素,多个元素用空格隔开

# 语法
sadd key member1 member2

# 示例
sadd set1 a b c d

获取Set的所有元素

# 语法
smembers key

# 示例
smembers set1

获取Set的长度

# 语法
scard key

# 示例
scard set1

获取多个Set的交集(多个集合,都有的元素)

# 语法
sinter key1 key2

# 示例
sinter set1 set2

获取多个Set的并集(多个集合,合并的元素)

  • 注意:合并后,重复的元素会被去重
sunion key1 key2

# 示例
sunion set1 set2

删除Set中的一个或多个元素

srem key member1 member2

# 示例
srem set1 a b

有序集合SortedSet

  • 集合SortedSet,可排序的Se,也叫ZSet,与Java的TreeSet类似,但底层数据结构差别相当大,每个元素都带有一个score分值,可以基于score进行排序,底层是一个跳表(SkipList)+ 哈希表
  • 特点
    • 可排序
    • 元素不重复
    • 查询速度快

向ZSet中添加一个或多个元素

# 语法
zadd key score1 member1 score member2

# 示例
zadd zset1 50 zhangsan 10 lisi

查询ZSet中的指定范围的元素

  • 索引从0开始,区间是包前又包后
  • start是开始位置,stop为结束位置,0代表从第一个元素开始,-1代表是元素的末尾
  • 默认升序排序,也就是从低到高
# 语法
zrange key start stop

# 示例
zrange zset1 0 -1

增加ZSet中某个元素的分值

  • incrementScore为增加的分值
  • member为给谁增加分值
# 语法
zincrby key incrementScore member

# 示例
zincrby zset1 10 lisi

删除ZSet中的某个元素

# 语法
zrem key member

# 示例
zrem zset1 wangwu

通用命令

  • 不分数据类型,所有数据类型都可以使用的命令

获取所有符合给定模式的key(类似模糊查询)

# 语法
keys pattern

# 示例
# 查询所有key
keys *

# 查询指定开头的key
keys s*

# 查询以1结尾的key
keys *1

判断某个key是否存在

# 语法
exists key

# 示例
exists zset1

获取指定key的数据类型

# 语法
type key

# 示例
type zset1

删除某个key

# 语法
del key

# 示例
del user
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容