Redis相关命令

什么是Redis

  Redis首先是一个存储数据库,数据在缓存在内存中,数据是K-V结构。

Redis的使用

Redis安装使用

  • Redis的数据类型

类型

描述

备注

string

字符串

K-V 最大值存储512M

list

简单字符串列表,可以将元素添加最左边或者右边

最多存储232 - 1

set

string类型的无序集合

Hash表实现,查询效率O(1),最多存储232 - 1

zset

有序集合,成员不能重复,但是scope可以重复

image.png

hash

键值对的集合

image.png

  • 常用命令 启动命令:redis-server 连接命令:redis-cli (本地) redis-cli -h 127.0.0.1 -p 6379 -a “mypwd” (remote)

介绍命令之前先说下命令返回值的类型:

  • 状态回复

状态回复

  • 错误回复

错误回复

  • 整数回复 1 : 成功 , 0 :失败

整数回复

  • 字符串回复

字符串回复

key相关

序号

命令

描述

1

del key

key存在时删除key,不存在返回0

2

dump key

返回key的序列化值

3

exists key

判读key是否存在

4

expire key time

key的有效期,单位 秒

5

expireat key timestamp

key的有效期,单位毫秒

6

pexpire key milliseconds

key的有效期,时间单位为时间戳

7

pexpireat key milliseconds-timestamp

key的有效期,时间单位为毫秒的时间戳

8

keys pattern

查找所有符合patten的key

9

move key db

将key 移到db的数据库;当前所在的db默认为0,select db转移到指定db

10

persist key

移除key的过期时间

11

ttl key

查看key的剩余有效时间 秒

12

pttl key

查看key剩余有效时间毫秒

13

randomkey

随机返回一个key

14

rename key newkey

修改已有key的名称,如果newkey 是已经存在的会将已经存在的value 覆盖

15

renamenx key newkey

当 且仅当newkey为null,修改key名称

16

type key

返回key的类型

string

序号

命令

描述

1

set key value

设置key的值,如果key的value有值则覆盖

2

get key

获取key的值

3

getrange key begin end

截取key的value 下标begin- end,如果end -1 则认为value.length-1

4

getset key value

给key设置value,并返回value 的old value

5

mget key1 key2

获取多个key的值

6

mset key1 value1 key2 value2

设置多个key-value

7

setex key seconds value

设置key -value 并且设置过期时间

8

setnx key value

只有key不存在时设置value

9

strlen key

返回key对应value 的长度

10

incr key

将key 对应的value 加1,只针对integer有效

11

decr key

将key 对应的value 减1

12

append key value1

在key 的value后拼接value1

hash相关命令

hash是String类型的键值对映射表,适合存储对象

序号

命令

描述

1

hmset key field1 value1 field2 value2

将多个 field-value (域-值)对设置到哈希表 key 中

2

hset key filed value

将一个filed-value设置到哈希表key中

3

hsetnx key filed value

只有filed不存在时,设置value

4

hvals key

获取hash中所有值

5

hmget key field1 field2

获取多个key的值

6

hlen key

哈希表中字段数量

7

hkeys key

获取hash表中所有字段

8

hgetall key

获取给定key所有字段和值

9

hget key field

获取给定key&字段的值

10

hexists key field

判断哈希表key中,field是否存在

11

hedl key field

删除 key哈希表中的field

List相关

String的列表,按照顺序排序,每个列表最多存储232-1元素

序号

命令

描述

1

lpush key value1 value2

将多个值加到列表头部

2

llen key

获取key列表长度

3

lpushx key value

将一个值添加到列表头部

4

lrange key start end

获取key列表范围元素start-end

5

lindex key index

获取下标index 元素

6

linsert key before/after value value1

在列表元素 value 之前或者之后插入value1

7

rpush key value1 value2

将多个值加到列表尾部

8

rpush key value

为已存在的列表尾部添加值

9

lset key index value

通过索引设置值

10

lpop key

移除并获取列表第一个元素

11

ltrim key

截取保留区间内元素

12

rpop key

移除最后一个元素

13

rpoppush source destination

移除最后一个元素,并将该元素添加到另一个列表头部

14

blpop key timeout

移除并获取第一个元素,如果列表中没有该元素阻塞timeout 单位秒

15

brpop key timeout

移除并获取最后一个元素,如果列表中没有该元素阻塞timeout 单位秒

set相关

string元素唯一的无序集合,最多存储232-1元素

序号

命令

描述

1

sadd key value1 value2

向集合添加一个或者多个成员

2

scard key

获取集合成员个数

3

sdiff key1 key2

返回key1集合在key2的差集

4

sdiffstore key key1 key2

返回key1集合在key2的差集,并将结果存储到key中

5

sinter key1 key2

返回集合的交集

6

sinterstore key key1 key2

返回集合的交集,并将结果存储到key中

7

sismember key member

判断集合是否有member成员

8

smembers key

获取集合所有成员

9

smove source destination member

将member元素从source移到destination

10

spop key

随机移除并返回一个元素

11

srandmember key count

返回集合中一个或者多个随机元素

12

srem key member1 member2

移除集合中一个或者多个元素

13

sunion key key2

返回给定集合的并集

14

sunionstore destination key1 key2

返回给定集合的并集,并存储destination

sorted set相关

相比较set 多了一个score(分数)

序号

命令

描述

1

zadd key score1 value1 score2 value2

向有序集合添加一个或多个成员,或者更新已存在成员的分数

2

zcard key

返回集合成员个数

3

zcount key min max

计算集合分数在min 和max之间成员个数

4

zincrby key increment member

在成员member的score上增加increment

5

zscore key member

返回成员member的score

6

zlexcount key min max

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

7

zrange key start end withscores

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

事务

序号

命令

描述

1

multi

标记一个事务的开启

2

exec

执行事务内的命令

3

discard

取消事务

4

watch key1 key2

监视key1 key2,如果事务执行之前发生变化,则事务被打断

5

unwatch

取消所有对key的监视

  • 配置

config get * 获取所有配置项 config set 修改配置项

配置项参数说明:

image.png

Redis的优点

  • 性能高,读的速度110000次/秒,写的速度81000次/秒
  • 所有指令都是原子级,支持多个操作事务,使用MULTI和EXEC。
  • 支持数据的持久化,将内存的数据保存在磁盘上,重启的时候重新加载
  • 支持数据的备份,即master-slave模式的备份
  • 支持多种数据类型,string,hash,set,list,zset

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • HashMap实现原理

    从上面的表中可以看到当桶中元素到达8个的时候,概率已经变得非常小,也就是说用0.75作为加载因子,每个碰撞位置的链表长度超过8个是几乎不可能的。 为什么是16...

    OPice
  • java读取配置文件的方式

    OPice
  • EagleEye全链路追踪

      当下微服务盛行的阶段,系统之间服务的依赖和复杂性也逐步提高。所以要保证业务的正常运行和团队的SLA,就需要对线上问题的避免和快速定位。这时就体现日志的重要性...

    OPice
  • Spring-LogBack笔记(1) - 基础使用

    TRACE < DEBUG < INFO < WARN < ERROR < FATAL

    yingzi_code
  • redis数据结构、持久化、缓存淘汰策略

    Redis 单线程高性能,它所有的数据都在内存中,所有的运算都是内存级别的运算,而且单线程避免了多线程的切换性能损耗问题。redis利用epoll来实现IO多路...

    业余草
  • Redis内存数据库操作命令详解

       rename(oldname, newname):将key由oldname重命名为newname,若newname存在则删除newname表示的key

    数据饕餮
  • Redis学习二(数据操作).

    在 redis-cli 中使用中文时,必须打开 --raw 选项,才能正常显示中文。

    JMCui
  • 认识redis数据类型

    Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。

    老雷PHP全栈开发
  • Redis详解

    1.关于关系型数据库和nosql数据库 关系型数据库是基于关系表的数据库,最终会将数据持久化到磁盘上,而nosql数据 库是基于特殊的结构,并将数据存储到内存的...

    用户5927264
  • Redis常用命令、5种数据类型的内部编码实现以及实用场景

    相信绝大部分人,应该是99%的人都知道Redis的5种的基本类型、它们分别是:字符串、哈希、列表、集合、有序集合,就如同下图这样:

    Java学习录

扫码关注云+社区

领取腾讯云代金券