redis基本命令之一:字符串、散列、列表

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介:

1.Redis命令

1.1获得符合规则的键名列表

keys pattern

 

1.2判断一个键是否存在

exists key

1.3删除键

del key

1.4获得键值的数据类型

type key

 

2.redis字符串类型

2.1赋值与取值

set key value

get key

2.2 递增数字

字符串类型可以存储任何形式的字符串,当存储的字符串是整数形式时,redis提供了一个使用的命令INCR,其作用是让当前键值递增,并返回递增后的值,用法为:

incr num

当要操作的键不存在时会默认键值为0,所以第一次递增后的结果是1.当键值不是整数时redis会提示错误。

2.3 增加指定的整数

incrby key increment

2.4 减少指定的整数

decrby key decrement

2.5 增加指定浮点数

Incrbyfloat key increment

2.6 像尾部追加值

append key value

2.7 获取字符串长度

strlen key

2.8 同时获得/设置多个键值

mget key [key…]

mset key value[key value …]

2.9 位操作

getbit key offset

setbit key offset value

bitcount key [start] [end]

bitop operation destkey key [key …]

3.散列类型

散列类型适合存储对象:使用对象类别和ID构成键名,使用字段表示对象的属性,而字段值则只存储属性值。

3.1、赋值与取值

hset key fieldvalue

hget key field

hmset key fieldvalue [key field value]

hgetall key

hset命令的方便之处在于不区分插入和更新操作,这意味着修改数据时不用事先判断字段是否存在来决定要执行的是插入操作还是更新操作。当执行的是插入操作时hset命令会返回1,当执行的是更新操作时hset返回0.更进一步当键本身不存在时,hset命令还会自动建立它。

3.2.判断字段是否存在

hexists key field

hexists命令用来判断一个字段是否存在,如果存在返回1,否则返回0.

3.3.当字段不存在时赋值

hsetnx key field value

hsetnx命令与hset命令类似,区别在于如果字段已经存在,hsetnx命令将不执行任何操作。

3.4.增加数字

hincrby key field increment

hincrby命令与incrby类似,可以使字段值增加指定的整数。散列类型没有hincr命令,但是可以通过hincrby key field 1来实现。

3.5.删除字段

hdel key field [field …]

hdel命令可以删除一个或多个字段,返回值是被删除的字段个数。

3.6 只获取字段名或字段值

hkeys key

hvals key

3.7 获得字段数量

hlen key

4.列表类型

列表类型可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者获得列表的某一个片段。

列表类型内部是使用双向列表实现的,所以向列表两端添加元素的时间复杂度为O(1),获取越接近两端的元素速度就越快。这意味着及时是一个有几千万元素的列表,获取头部或尾部的10条记录也是挺快的。

不过使用链表的代价是通过索引访问元素比较慢,这种特性使列表类型能非常快速地完成数据库难以应付的场景:如社交网站的新鲜事,我们关心的只是最新的内容,使用列表类型存储,即使新鲜事的总数达到几千万个,获取其中最新的100调数据也是极快的。同样因为在两端插入记录的事件负责度是O(1),列表类型也适合用来记录日志,可以保证新日志的速度不会收到已有入职数量的影响。

4.1 向列表两端增加元素

lpush key value [value …]

rpush key value [value …]

lpush命令用来想列表左边增加元素,返回值表示增加元素后列表的长度。

rpush命令用来想列表右边增加元素,返回值表示增加元素后列表的长度。

4.2 从列表两端弹出元素

lpop key

rpop key

lpop命令可以从列表左边弹出一个元素。Lpop命令执行分两步操作:第一步是将列表左边的元素从列表中移除,第二步是返回被移除的元素值。

rpop命令从列表右边弹出一个元素。

4.3 获取列表中元素个数

llen key

当键不存在时llen会返回0;

llen命令的功能类似SQL语句SELECTCOUNT(*) FROM table_name,但是llen的时间复杂度为O(1),使用时redis会直接读取现成的值,而不需要像部分关系数据库那样需要遍历一遍数据表来统计条目数量。

4.4 获得列表片段

lrange key start stop

lange 命令是列表类型最常用的命令之一,它能够获得列表中的某一片段。Lrange命令将返回索引从start到stop之间的所有元素。Redis的列表起始索引为0.

4.5 删除列表中指定的值

Lrem key count value

Lrem命令会删除列表中前count个值为value的元素,返回值是实际删除的元素个数。根据count值的不同,lrem命令的执行方式会略有差异:

         当count > 0时lrem命令会从列表左边开始删除前count个值为value的元素;

         当count < 0时lrem命令会从列表右边开始删除前|count|个值为value的元素;

         当count = 0 时lrem命令会删除所有值为value的元素。

4.6 获得/设置指定索引的元素值

lindex key index

lset key index value

4.7 只保留列表指定片段

ltrim key start end

4.8 向列表中插入元素

Linsert key before|after pivot value

linsert 命令首先会在列表中从左到右查找值为pivot的元素,然后根据第二个参数是before还是after来决定将alue插入到该元素的前面还是后面。

         Linsert命令的返回值是插入后列表的元素个数。

 

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
16天前
|
XML JSON NoSQL
Redis的常用数据结构之字符串类型
Redis的常用数据结构之字符串类型
19 0
|
16天前
|
NoSQL Redis 数据库
Redis的全局命令及相关误区
Redis的全局命令及相关误区
22 0
|
24天前
|
NoSQL Redis 数据库
Redis中的常用命令有哪些?
Redis常用命令包括:PING测试连接,ECHO回显,SELECT切换数据库,QUIT关闭连接;KEYS查找key,EXISTS检查存在,DEL删除key,EXPIRE设置过期时间,TTL查看剩余生存时间,TYPE检测数据类型;STRING操作如SET/GET/MSET/MGET,INCR/DECR增减计数;HASH命令如HSET/HGET/HMSET/HMGET/HGETALL管理字段;LIST操作如LPUSH/RPUSH/LPOP/RPOP/LRANGE;
10 0
|
30天前
|
NoSQL Redis
Redis集群(六):集群常用命令及说明
Redis集群(六):集群常用命令及说明
187 0
|
1天前
|
存储 NoSQL 安全
Redis入门到通关之数据结构解析-动态字符串SDS
Redis入门到通关之数据结构解析-动态字符串SDS
|
1天前
|
存储 缓存 NoSQL
Redis入门到通关之Hash命令
Redis入门到通关之Hash命令
|
1天前
|
存储 缓存 NoSQL
Redis入门到通关之String命令
Redis入门到通关之String命令
|
7天前
|
存储 NoSQL Java
Redis 命令
Redis 命令
144 0
|
18天前
|
NoSQL Redis 数据库
通过migrate命令实现两个redis实例之间的数据迁移
通过migrate命令实现两个redis实例之间的数据迁移
|
23天前
|
存储 消息中间件 缓存
Redis 字符串:用一串数据解决多种问题
Redis 字符串:用一串数据解决多种问题

热门文章

最新文章