bat获取命令返回值_Redis学习(五)--------Redis常用操作命令

4ac193572e592c7c37faed4142fcd420.png

Redis命令

1、基本语法

redis-cli

[root@static-72-1 ~]# redis-cli 127.0.0.1:6379> pingPONG123

进入redis 发送PING redis会向你返回一个PONG 表示已连接成功

2、如何远程访问

edis-cli -h ip -p 6379 -a password

[root@static-72-1 redis-5.0.4]# redis-cli -h 127.0.0.1 -p 6379 -a redis1234

密码设置和查看

不重启服务方法

config set requirepass password

3、Redis 键(key)

  • keys:

查找所有符合给定模式( pattern)的 key

  • exists:

判断某个key是否存在

  • move key db :

将当前数据库的 key 移动到给定的数据库 db 当中

  • expire key seconds:

给key设置过期时间,单位为秒,过期或自动清除key

  • TTL:

以秒为单位,返回给定 key 的剩余生存时间

-2表示key不存在

-1表示永不过期

  • type key:

查看key当前的类型

4、Redis字符串(string)

Redis中的自增命令和自减命令

  • incr key:

对key对应的值进行加一操作

若key对应的值不能被解释为数字,则会返回错误

如果key不存在,则会创建一个key,值初始化为0,然后执行incr加一操作

  • incrby key increment:

为key对应的值加上增量increment

如果键 key 不存在, 那么键 key 的值会先被初始化为 0 , 然后再执行 INCRBY 命令。

如果键 key 储存的值不能被解释为数字, 那么 INCRBY 命令将返回一个错误。

  • incrbyfloat key increment:

为key 储存的值加上浮点数增量 increment

如果键 key 不存在, 那么 INCRBYFLOAT 会先将键 key 的值设为 0 , 然后再执行加法操作。

如果命令执行成功, 那么键 key 的值会被更新为执行加法计算之后的新值, 并且新值会以字符串的形式返回给调用者。

  • decr key:

为key值存储的数字减1

如果键 key 不存在, 那么键 key 的值会先被初始化为 0 , 然后再执行 DECR 操作。

如果键 key 储存的值不能被解释为数字, 那么 DECR 命令将返回一个错误。

  • decrby key:

将键 key 储存的整数值减去减量 decrement 。

如果键 key 不存在, 那么键 key 的值会先被初始化为 0 , 然后再执行 DECRBY 命令。

如果键 key 储存的值不能被解释为数字, 那么 DECRBY 命令将返回一个错误

  • set key value:

将字符串值value关联到key

如果key已经有其他值,set就会复写值,无视类型

  • setnx key value:

只要键key不存在的情况下,将key的值设为value

若key已经存在,不会执行任何动作

命令在设置成功时返回 1 , 设置失败时返回 0 。

  • setex key seconds value:

将key的值设为value,并设置key的生存时间 单位为秒

如果key存在,则覆盖原有的值

  • psetex key milliseconds value:

与setex相似,但是它设置的生存时间是以毫秒为单位的

  • get key:

获取与key相关的字符串

只能用于获取字符串类型的value,存在返回对应的值,不存在返回nil

  • getset key value:

将key设置为value,并返回key设置前的旧值

若key之前没有值则返回nil,若key不是字符串则返回错误

  • strlen key:

返回key对应存储字符串的长度

  • append key value:

如果key存在,且key对应的值是一串字符串,append会将value值追加到key值现有值的末尾,并返回value值的长度

如果key不存在,则作用就像set key value 一样,返回值的长度

  • setrange key offset value:

从规定偏移量开始,用指定的value值去覆写key对应存储字符串的值

不存在的键 key 当作空白字符串处理。

SETRANGE 命令会确保字符串足够长以便将 value 设置到指定的偏移量上, 如果键 key 原来储存的字符串长度比偏移量小(比如字符串只有 5 个字符长,但你设置的 offset 是 10 ), 那么原字符和偏移量之间的空白将用零字节(zerobytes, “x00” )进行填充。

  • getrange key start end:

返回key值指定范围内的值,范围有偏移量start和end决定

负数偏移量表示从字符串的末尾开始计数, -1 表示最后一个字符, -2 表示倒数第二个字符, 以此类推

  • mset key value [key value …]:

同时为多个键设置值。

如果某个给定键已经存在, 那么 MSET 将使用新值去覆盖旧值

  • msetnx key value [key value …]:

当且仅当所有给定键都不存在时, 为所有给定键设置值。

即使只有一个给定键已经存在, MSETNX 命令也会拒绝执行对所有键的设置操作。

当所有给定键都设置成功时, 命令返回 1 ; 如果因为某个给定键已经存在而导致设置未能成功执行, 那么命令返回 0 。

  • mget key1 key 2…:

返回给定的一个或多个字符串键的值。

如果给定的字符串键里面, 有某个键不存在, 那么这个键的值将以特殊值 nil 表示。

5、Redis 哈希表(hash) 重点项目常用

  • hset hash field value::

将哈希表 hash 中域 field 的值设置为 value 。

如果给定的哈希表并不存在, 那么一个新的哈希表将被创建并执行 HSET 操作。

如果域 field 已经存在于哈希表中, 那么它的旧值将被新值 value 覆盖。

当 HSET 命令在哈希表中新创建 field 域并成功为它设置值时, 命令返回 1 ; 如果域 field 已经存在于哈希表, 并且 HSET 命令成功使用新值覆盖了它的旧值, 那么命令返回 0 。

  • hsetnx hash field value:

当且仅当field尚未存在于hash表的情况下,将其值设为value,正确返回值1

如果给定域已经存在哈希表中,那么僵放弃此次操作,返回值0

如果hash不存在,那将创建一个新的哈希表并执行操作,返回1

  • hget key field:

HGET 命令在默认情况下返回给定域的值。

如果给定域不存在于哈希表中, 又或者给定的哈希表并不存在, 那么命令返回 nil

  • hgetall key:

返回哈希表 key 中,所有的域和值。

在返回值里,紧跟每个域名(field name)之后是域的值(value),所以返回值的长度是哈希表大小的两倍。

  • hexists key field:

检查给定域field是否存在于哈希表中,存在返回1,不存在返回0

  • hdel key field[fiel]:

删除哈希表 key 中的一个或多个指定域,不存在的域将被忽略。

  • hlen key:

返回哈希表key中域的数

  • hstrlen key field:

返回哈希表 key 中, 与给定域 field 相关联的值的字符串长度(string length)。

如果给定的键或者域不存在, 那么命令返回 0

  • HINCRBY key field increment:

为哈希表 key 中的域 field 的值加上增量 increment 。

增量也可以为负数,相当于对给定域进行减法操作。

如果 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令。

如果域 field 不存在,那么在执行命令前,域的值被初始化为 0 。

对一个储存字符串值的域 field 执行 HINCRBY 命令将造成一个错误。

  • HINCRBYFLOAT key field increment:

为哈希表 key 中的域 field 加上浮点数增量 increment 。

如果哈希表中没有域 field ,那么 HINCRBYFLOAT 会先将域 field 的值设为 0 ,然后再执行加法操作。

如果键 key 不存在,那么 HINCRBYFLOAT 会先创建一个哈希表,再创建域 field ,最后再执行加法操作。

  • HMSET key field value [field value …]:

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

此命令会覆盖哈希表中已存在的域。

如果 key 不存在,一个空哈希表被创建并执行 HMSET 操作。

  • HMGET key field [field …]:

返回哈希表 key 中,一个或多个给定域的值。

如果给定的域不存在于哈希表,那么返回一个 nil 值。

因为不存在的 key 被当作一个空哈希表来处理,所以对一个不存在的 key 进行 HMGET 操作将返回一个只带有 nil 值的表。

  • HKEYS key:

返回哈希表 key 中的所有域。

  • HVALS key

返回哈希表 key 中所有域的值

6、Redis 列表(list)

常用命令

  • lpush key value [value…]:

将一个或多个值 value 插入到列表 key 的表头

如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表头: 比如说,对空列表 mylist 执行命令 LPUSH mylist a b c ,列表的值将是 c b a ,这等同于原子性地执行 LPUSH mylist a 、 LPUSH mylist b 和 LPUSH mylist c 三个命令。

如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。

当 key 存在但不是列表类型时,返回一个错误

  • lpushx key vale:

将值 value 插入到列表 key 的表头,当且仅当 key 存在并且是一个列表。返回当前长度

和 LPUSH key value [value …] 命令相反,当 key 不存在时, LPUSHX 命令什么也不做。

  • rpush key value[value…]:

将一个或多个值 value 插入到列表 key 的表尾(最右边)。

如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表尾:比如对一个空列表 mylist 执行 RPUSH mylist a b c ,得出的结果列表为 a b c ,等同于执行命令 RPUSH mylist a 、 RPUSH mylist b 、 RPUSH mylist c 。

如果 key 不存在,一个空列表会被创建并执行 RPUSH 操作。

当 key 存在但不是列表类型时,返回一个错误。

  • rpushx key value:

将值 value 插入到列表 key 的表尾,当且仅当 key 存在并且是一个列表。

和 RPUSH key value [value …] 命令相反,当 key 不存在时, RPUSHX 命令什么也不做。

  • lpop key:

移除并返回列表key的头元素

  • rpop key:

移除并返回列表key的尾元素

  • RPOPLPUSH source destination:

将列表 source 中的最后一个元素(尾元素)弹出,并返回给客户端。

将 source 弹出的元素插入到列表 destination ,作为 destination 列表的的头元素。

如果 source 不存在,值 nil 被返回,并且不执行其他动作。

如果 source 和 destination 相同,则列表中的表尾元素被移动到表头,并返回该元素,可以把这种特殊情况视作列表的旋转(rotation)操作。

  • LREM key count value:

根据参数 count 的值,移除列表中与参数 value 相等的元素。返回移除成功得个数

  • llen key:

返回查询key的长度

  • LINDEX key index:

返回列表 key 中,下标为 index 的元素。

  • LINSERT key BEFORE|AFTER pivot value:

将值 value 插入到列表 key 当中,位于值 pivot 之前或之后。

  • LSET key index value:

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

  • LRANGE key start stop:

返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。

  • LTRIM key start stop:

对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。

7、Redis 集合(set)

  • SADD key member [member …]:

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

假如 key 不存在,则创建一个只包含 member 元素作成员的集合。

当 key 不是集合类型时,返回一个错误。

  • SISMEMBER key member:

判断 member 元素是否集合 key 的成员。存在返回1 不存在返回0

  • SPOP key [count]:

移除并返回集合中的一个随机元素。

如果只想获取一个随机元素,但不想该元素从集合中被移除的话,可以使用 SRANDMEMBER key [count] 命令。

  • SRANDMEMBER key [count]:

随机返回参数

如果命令执行时,只提供了 key 参数,那么返回集合中的一个随机元素

  • SREM key member [member …]:

移除集合 key 中的一个或多个 member 元素,不存在的 member 元素会被忽略。

当 key 不是集合类型,返回一个错误。

  • SMOVE source destination member:

将 member 元素从 source 集合移动到 destination 集合。

SMOVE 是原子性操作。

如果 source 集合不存在或不包含指定的 member 元素,则 SMOVE 命令不执行任何操作,仅返回 0 。否则, member 元素从 source 集合中被移除,并添加到 destination 集合中去。

当 destination 集合已经包含 member 元素时, SMOVE 命令只是简单地将 source 集合中的 member 元素删除。

当 source 或 destination 不是集合类型时,返回一个错误。

  • SMEMBERS key:

返回集合 key 中的所有成员。

不存在的 key 被视为空集合。

  • SINTER key [key …]:

返回一个集合的全部成员,该集合是所有给定集合的交集。

不存在的 key 被视为空集。

当给定集合当中有一个空集时,结果也为空集(根据集合运算定律)

  • SINTERSTORE destination key [key …]:

这个命令类似于 SINTER key [key …] 命令,但它将结果保存到 destination 集合,而不是简单地返回结果集。

如果 destination 集合已经存在,则将其覆盖。

destination 可以是 key 本身

8、Redis有序 集合(sorted set)

  • ZADD key score member [[score member] [score member] …]:

将一个或多个 member 元素及其 score 值加入到有序集 key 当中。

如果某个 member 已经是有序集的成员,那么更新这个 member 的 score 值,并通过重新插入这个 member 元素,来保证该 member 在正确的位置上。

score 值可以是整数值或双精度浮点数。

如果 key 不存在,则创建一个空的有序集并执行 ZADD 操作。

当 key 存在但不是有序集类型时,返回一个错误。

  • ZSCORE key member:

返回有序集 key 中,成员 member 的 score 值。

如果 member 元素不是有序集 key 的成员,或 key 不存在,返回 nil

  • ZINCRBY key increment member:

为有序集 key 的成员 member 的 score 值加上增量 increment 。

可以通过传递一个负数值 increment ,让 score 减去相应的值,比如 ZINCRBY key -5 member ,就是让 member 的 score 值减去 5 。

当 key 不存在,或 member 不是 key 的成员时, ZINCRBY key increment member 等同于 ZADD key increment member 。

当 key 不是有序集类型时,返回一个错误。

score 值可以是整数值或双精度浮点数。

  • ZRANGE key start stop [WITHSCORES]:

返回有序集 key 中,指定区间内的成员。

其中成员的位置按 score 值递增(从小到大)来排序。

具有相同 score 值的成员按字典序(lexicographical order )来排列。

  • ZREM key member [member …]:

移除有序集 key 中的一个或多个成员,不存在的成员将被忽略。

当 key 存在但不是有序集类型时,返回一个错误

参考资料

https://www.jb51.net/article/137916.htm

http://www.runoob.com/redis/redis-commands.html

作者:大章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值