C# CsRedis的初探(二)-- Redis常用命令整理(基本篇)

Redis常用命令基本篇

keys 命令

? 匹配一个字符

KEYS h?llo 匹配 hello , hallo 和 hxllo 等。

* 匹配任意个(包括0个)字符

KEYS h*llo 匹配 hllo 和 heeeeello 等。

[] 匹配括号间的任一个字符,可以使用 "-" 符号表示一个范围,如 a[b-d] 可以匹配 "ab","ac","ad"

KEYS h[ae]llo 匹配 hello 和 hallo ,但不匹配 hillo 。

\x 匹配字符x,用于转义符号,如果要匹配 "?" 就需要使用 \?


判断一个键值是否存在

exists key

如果存在,返回整数类型 1 ,否则返回 0


删除键

del key [key.....]

可以删除一个或多个键,返回值是删除的键的个数

注意:不支持通配符删除


获得键值的数据类型

type key

返回值可能是 string(字符串类型) hash(散列类型) list(列表类型) set(集合类型) zset(有序集合类型)


赋值与取值

set key value 赋值

  • EX second :设置键的过期时间为 second 秒。 SET key value EX second 效果等同于 SETEX key second value 。
  • PX millisecond :设置键的过期时间为 millisecond 毫秒。 SET key value PX millisecond 效果等同于 PSETEX key millisecond value 。
  • NX :只在键不存在时,才对键进行设置操作。 SET key value NX 效果等同于 SETNX key value 。
  • XX :只在键已经存在时,才对键进行设置操作。

get key 取值

  • 当 key 不存在时,返回 nil ,否则,返回 key 的值。 如果 key 不是字符串类型,那么返回一个错误。

递增数字

incr key

当存储的字符串是整数形式时,redis提供了一个使用的命令 incr 作用是让当前的键值递增,并返回递增后的值

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


增加指定的整数

incrby key increment

incrby 命令与 incr 命令基本一样,只不过前者可以通过 increment 参数指定一次增加的数值如:

incrby num 2

incrby num 3


减少指定的整数

decr key

decrby key increment

desc 命令与incr 命令用法相同,只不过是让键值递减

decrby 命令与 incrby命令用法相同


增加指定浮点数

incrbyfloat key increment

incrbyfloat 命令类似 incrby 命令,差别是前者可以递增一个双精度浮点数,如:

incrbyfloat num 2.7


向尾部追加值

append key value

作用是向键值的末尾追加 value ,如果键不存在则将改键的值设置为 value,即相当于 set key value。返回值是追加后字符串的长度

如:append foo " hello word!"


获取字符串长度

strlen key

返回键值的长度,如果键不存在则返回0


同时 获得/设置 多个键值

mget key [key.....]

如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。因此,该命令永不失败。

mset key value [key value .......]

如果某个给定 key 已经存在,那么 MSET 会用新值覆盖原来的旧值,如果这不是你所希望的效果,请考虑使用 MSETNX 命令:它只会在所有给定 key 都不存在的情况下进行设置操作。


位操作

一个字节由8个二进制位组成,redis 提供了4个命令直接对二进制位进行操作

getbit key offset

getbit 命令可以获得一个字符串类型键指定位置的二进制位的值(0 或 1),索引从 0 开始,如果需要获取的二进制位的索引超出了键值的二进制位的实际长度则默认位值是 0

setbit key offset value

setbit 命令可以设置字符串类型键指定位置的二进制位的值,返回值是该位置的旧值,如果需要设置的位置超过了键值的二进制位的长度,setbit 命令会自动将中间的二进制位设置为0,同理设置一个不存在的键的指定二进制位的值会自动将其前面的位赋值为 0

bitcount key [strart] [end]

bitcount 命令可以获得字符串类型键中值是1的二进制位个数,可以通过参数来限制统计的字节范围,如我们希望统计前两个字节(即"aa") 命令:bitcount foo 0 1

bitop operation destkey key [key .....]

bittop 命令可以对多个字符串类型键进行位运算,并将结果存储在destkey参数指定的键中。该命令支持的运算操作有 AND、 OR、XOR、 NOT,

如我们对bar 和 aar 进行 OR 运算操作:

set foo1 bar

set foo2 aar

bitop OR res foo1 foo2

get res


-END-

本文分享自微信公众号 - 微卡智享(VaccaeShare)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-12-16

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏别先生

Docker安装redis的使用

1、Docker安装redis的使用。 docker search redis检索redis的服务。先检索再拉取。

11920
来自专栏颇忒脱的技术博客

Redis Cluster节点故障探测算法笔记

本笔记是对Redis Cluster Spec - Failure Detection的归纳总结

14530
来自专栏PHPer 进击

跟着大彬读源码 - Redis 2 - 服务器如何响应客户端请求?(上)

上次我们通过问题“启动服务器,程序都干了什么?”,跟着源码,深入了解了 Redis 服务器的启动过程。

6920
来自专栏未闻Code

一日一技:Python的bytes型数据的迭代特征

Bytes类型是Python 3引入的一个基本数据类型。调用Bytes类型的 .decode()方法可以把它变成Python 3的 str类型。调用 str类型...

16650
来自专栏架构专题

开源一个kafka增强:okmq-1.0.0

mq是个好东西,我们都在用。这也决定了mq应该是高高高可用的。某团就因为这个组件,出了好几次生产事故,呵呵。

9820
来自专栏java思维导图

这几道Redis面试题都不懂,怎么拿offer?

随着系统访问量的提高,复杂度的提升,响应性能成为一个重点的关注点。而缓存的使用成为一个重点。redis 作为缓存中间件的一个佼佼者,成为了面试必问项目。本文分享...

9630
来自专栏Java识堂

Redis高可用,高性能,架构演进史

上个礼拜,我搭建了一个mongo分片集群,发现分布式系统保证高可用和高性能的套路都差不多。高性能就是做分片(可以类比为分库分表,将数据分到不同服务器上),在Ka...

8920
来自专栏数据库新发现

钱文品 | 《Redis在海量数据和高并发下的优化实践》主题分享

原文:http://www.enmotech.com/web/detail/1/750/1.html 

11920
来自专栏PHPer 进击

跟着大彬读源码 - Redis 1 - 启动服务,程序都干了什么?

一直很羡慕那些能读 Redis 源码的童鞋,也一直想自己解读一遍,但迫于 C 大魔王的压力,解读日期遥遥无期。

11130
来自专栏互扯程序

非常值得一看的35个Redis面试题总结(一)

Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到...

13110

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励