民工兄Redis教程(三):常用管理命令
给大家分享一些Redis开发过程中经常用到的命令,供大家参考!
redis set key
Redis SET 命令用于设置键的值。如果键已经存储了另一个值,SET 将覆盖旧值。
语法结构如下:
set keyname 值
返回值:如果设置成功,则返回OK。
实例:
set freekey free;
结果:
redis get
Redis get 命令用于获取 key 中的值。如果键不存在,则返回null。
语法结构如下:
get keyname
返回值:返回键名对应的值。如果键不存在,则返回null。如果键中存储的值不是字符串类型,则返回错误。
实例:
get freekey
结果:
redis -cli
在Redis服务上执行Redis命令。然后你需要一个Redis客户端来连接Redis服务器。 Redis客户端位于我们之前下载的Redis安装包中。
要启动Redis客户端,我们可以在DOS下进入Redis安装目录,然后通过运行Redis -cli启动客户端。此命令连接到本地 Redis 服务。如下图:
连接远程Redis服务器
启动另一个cmd,运行客户端连接Redis服务器,即服务端,进行测试。命令如下:
redis-cli.exe -h 127.0.0.1 -p 6379 -a 123456
其中127.0.01是Redis服务器地址,6379是端口,-123456是设置的密码。结果如下:更多学习Redis的文章请参见上:NoSQL数据库系列-Redis。该系列持续更新。
Redis setnx
Redis setnx 命令也用于设置 key 的值,但与 Redis set 命令略有不同。仅当密钥不存在时才设置密钥。如果 key 已经存在,redis setnx 将不执行任何操作。
语法结构如下:
setnx keyname value
返回值:该命令设置成功则返回1,失败则返回0。
示例:
setnx nxkey hello
setnx nxkey hello1
结果:
redis setex
Redis setex 命令也用于设置 key 的值,但与 Redis set 命令略有不同。它还可以另外设置键值的生命周期。
语法结构如下
SETEX key seconds value
返回值:命令成功则返回OK。如果秒参数非法,该命令将返回错误。如果键已经存在,则旧值将被覆盖。
示例
SETEX setexkey 100 hello
--指的是设定setexkey键的生存周期为100秒。
ttl setexkey
--查看setexkey键的剩余时间。
结果:
redis psetex
redis psetex 命令:用于设置 Redis 的键值,并带有值的生存时间。与 setex 命令不同,它设置值的生存时间。毫秒。
语法结构如下:
PSETEX key seconds value
返回值:命令成功则返回OK。如果秒参数非法,该命令将返回错误。如果键已经存在,则旧值将被覆盖。
实例:
PSETEX psetexkey 5000 free
--指的是设定setexkey键的生存周期为1000毫秒。
pttl psetexkey
--查看psetexkey键的剩余时间。
结果:
redis getset
redis getset 命令:用于向 Redis 设置新键值并返回旧键值。如果key值之前不存在,则报错。
语法结构如下:
getset key value
返回值:该命令仅在键值存在后返回旧键值,然后为键设置新值。如果该键之前不存在,则立即报告错误并返回 null。
示例:
--给key设置值
set getsetkey "free"
--给key设置新值
getset getsetkey "free1"
--获取key值
get getsetkey
结果:
redis 追加
Redis 追加命令用于追加到 Redis 字符串。如果键值已存在,则提供的值将附加到键值的末尾。价值。
语法结构:
append key value
返回值:如果key存在并且是字符串,则append命令将value的值追加到原key值的末尾,并返回现有的字符串长度。
如果键不存在,则立即分配键值,与设置键命令相同。
示例:
--给key设值
set mykey "free"
--在key值后面追加字符
append mykey " redis "
--获取key值
get mykey
结果:
redis mset
Redis mset命令用于为Redis键(key)赋值。与Redis Set不同的是,它可以同时给多个key赋值。
语法结构:
mset key1 value1 key2 value2 ...
返回值:始终返回OK。与Redis set命令一样,如果键值存在,则其值将被覆盖。
示例:
--给key设值
mset mykey1 "free" mykey2 "free redis "
--获取键值
get mykey1
get mykey2
结果:
redis mget
Redis mget命令用于批量获取多个给定key的值。它是Redis mset命令的逆过程。
语法结构:
redis mget key1 key2...
返回值:返回一个或多个给定键的值。如果给定的键不存在,则该键的返回值为 null。
示例:
--给key设值
mset mykey1 "free" mykey2 "free redis "
--获取键值
mget mykey1 mykey2
结果:更多学习Redis的文章请参见上:NoSQL 数据库系列中的 Redis。该系列持续更新。
redis incr
redis incr命令用于对数值类型的键值加1,然后返回加1后的值。如果键值存在且为数字类型,则加1并返回。
示例:
--给key设值
set key 2
--给key加1
incr key
--获取key的值
get key
--对不是数值的执行incr结果
set key "free"
incr key
结果:
redis decr
Redis decr命令用于将数值类型的键值减1(即结果减1),然后返回。
语法结构:
decr key
返回值:
- 如果键值存在且为数字类型,则将其减1,然后返回结果值。
- 如果键值不存在,则视为0,返回-1。
- 如果键值不是数字类型,则返回错误。
示例:
--给key设值
set key 2
--给key进行递减1
decr key
--获取key的值
get key
--对不是数值的执行decr结果
set key "free"
decr key
结果:
redis lindex key index
redis lindex key index命令主要用于获取链表类型中指定订阅的数据。
语法结构:
lindex key index
#返回链表类型key中下标为index的数据。index表示链表的下标,0表示链表头第一个元素,-1表示链表尾最后一个元素。
返回值:指定链表索引的元素。如果索引指定的下标大于链表长度,则报告下标越界。
示例:
--给链表插入数据
rpush mylist10 "hello" "free" "redis" "hello"
--获取链表数据
lindex mylist10 0
lindex mylist10 1
lindex mylist10 -1
结果:
redis ltrim
Redis ltrim 命令主要用于区分 Redis 链表类型指定订阅范围内的元素。不在指定范围内的项目将被删除。
语法结构:
ltrim key start end
key:#指定要截取的链表键。
start/end:#指定要截取的区间,start是开始,end是结尾。如ltrim key 0,1表示保留前两个元素,其它元素都删除掉。
start(end)代表链表的所有下标。链表下标从0开始,代表链表的头,即第一个元素。 -1表示链表结束,即最后一个元素。
返回值:命令执行成功则返回OK。如果key不是链表类型,则返回错误。订阅间隔不能超过链表长度,会报订阅越界错误。
示例:
--给链表插入数据
rpush mylist "hello" "free" "redis" "ok"
--截取中间两个元素
ltrim mylist 1 2
--查看截取后的链表元素
lrange mylist 0 -1
结果:
redis hget
Redis hget命令主要用于获取Redish哈希表中字段(field)的值。
语法结构:
hget key field
获取哈希表key中域(field)的值。
返回值:通常返回给定字段的值。如果指定的字段不存在,则返回空错误。
示例:
--创建一个哈希表
hset myhash field1 "free"
--获取指定域的值
hget myhash field1
结果:
redis hdel
Redis hdel 命令用于删除哈希表中指定的字段(字段)。只能批量删除多个字段。不存在的字段将被删除。忽略
语法结构:
hdel hash field field1 ....
hash #指定哈希表的键,field是哈希表的域。
返回值:返回成功删除域名的数量。不存在的域不计算在内。
示例:
--创建一个哈希表
hset myhash field1 "free"
hset myhash field2 "redis"
--判断指定的域是否存在
hdel myhash field1 field2 field3
结果: 摘自:https://www.wenjians.com/doc/q3km1de9s1t7
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。