zoukankan      html  css  js  c++  java
  • Redis常用命令入门1:字符串类型命令

    Redis总共有五种数据类型,在学习的时候,一定要开一个redis-cli程序,边看边练,提高效率。

    一、最简单的命令

    1、获得符合规则的键名列表

    这里的*号,是指列出所有的键,同时*号也可以替换成其他支持glob风格通配符格式,具体规则如下:

    ?:匹配一个字符

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

    []:匹配括号间多大任一个字符,可以使用“-”表示范围,如[a-z]

    x:匹配字符x,用于转义,如需匹配问号,需要?才能匹配

    这里说明一下,redis命令是不区分大小写的,还有就是keys命令是需要遍历Redis中所有的键的,当键很多时,很耗费性能的。所以在生产环境中要尽可能的不用。

    例:

    redis 127.0.0.1:6379> set name "joan"
    OK
    redis 127.0.0.1:6379> get name
    "joan"
    redis 127.0.0.1:6379> set aaa 1
    OK
    redis 127.0.0.1:6379> set bbb 2
    OK
    redis 127.0.0.1:6379> keys *
    1) "aaa"
    2) "name"
    3) "bbb"

    2、判断键是否存在

    如果存在返回证书类型1,否则返回0

    例:

    redis 127.0.0.1:6379> exists name
    (integer) 1
    redis 127.0.0.1:6379> exists n
    (integer) 0

    3、删除键

    返回的是删除的键的个数,这里说明也可以一次删除多个键,只需空格再加键就可以了。例如:

    如果删除一个键,这个键已经不存在了就会返回0 。

    例:

    redis 127.0.0.1:6379> keys *
    1) "aaa"
    2) "name"
    3) "bbb"
    redis 127.0.0.1:6379> del aaa bbb
    (integer) 2
    redis 127.0.0.1:6379> del aaa
    (integer) 0

    4、获得键值的数据类型

    这里在重复一下上次说过的,redis的数据类型有:string(字符串类型)、hash(散列类型)、list(列表类型)、set(集合类型)、zset(有序集合类型)。

    下面开始详细介绍每种数据类型的命令。

    二、字符串类型

    字符串类型是Redis中最基本的数据类型,他能存储任意形式的字符串,包括二进制数据。字符串类型也是其他四种数据类型的基础。也就是说,其他四种数据类型都是由字符串类型所组成的。

    常用命令如下:

    set key value   #赋值,返回值是OK

    get key            #取值,返回值是对应键的值

    incr key          #递增数字,虽然是字符串类型,但如果可以是整型的话,也是可以使用此命令递增的,返回值是递增后的值,递增操作后,再次获取该key值,值为新值。

    例:

    redis 127.0.0.1:6379> get age
    "32"
    redis 127.0.0.1:6379> incr age
    (integer) 33
    redis 127.0.0.1:6379> get age
    "33"

    incrby key number      #这个命令和上一个类似,只不过可以通过number指定增长的数量,返回值同样是增长后的值

    例:

    redis 127.0.0.1:6379> incrby age 5
    (integer) 38
    redis 127.0.0.1:6379> get age
    "38"

    decr key        #递减数字,类似递增,这里不做过多解释了

    decrby key number     #类似于incrby,这里大家应该可以猜到,decrby key number和incrby key -number是一个意思

    incrbyfloat key floatnumber     #增加指定浮点数,这个是增加一个双精度的浮点数,位数多了就会不准

    append key value      #向尾部追加值,如 append foo ” value”,这个时候用引号是为了标识有空格,返回值为值的总长度

    例:

    redis 127.0.0.1:6379> append name 'hello'
    (integer) 9
    redis 127.0.0.1:6379> get name
    "joanhello"

    strlen key        #获取字符串值总长度,返回值就是长度,如果key不存在,则返回0

    mget key [key ...]        #同时获得多个键值,键值的列表

    例:

    redis 127.0.0.1:6379> mget name age float
    1) "joanhello"
    2) "38"
    3) "33.33"

    mset key value [key value ...]     #同时设置多个键值,成功返回OK

    redis 127.0.0.1:6379> mset name "joan" age 9 float 33.33
    OK
    redis 127.0.0.1:6379> mget name age float
    1) "joan"
    2) "9"
    3) "33.33"

    setbit/getbit    #这个是位操作,具体示例如下:

    这时赋值给foo值为bar,对应的ASCII码为98、97、114,转换为八位二进制为:

    01100010、01100001、01110010

    进行如下操作:

    所以getbit就是获取key对应的字符串类型键值指定位置的二进制的值(0或1),索引从0开始

    如果获取超出了最大值,也返回0.

    而相反,setbit就是来设置key对应的指定位置的二进制值的。返回值是该位置的旧值。例如

    如果要设置的值超过了最大长度,则命令会将最大长度之后到最大长度之间未设置的值统一设置为0,同理,设置一个不存在的键值,也会自动把它前面所有未设置的位置二进制设为0。如:

    则会把qqq对应的值变为00000001 。

    bitcount key 命令可以返回字符串类型键值中二进制值为1的个数

    同时他的参数还可以设置查询的范围,

    bitcount foo 0 1   #意思是只查询ba两个字节中包含二进制值为1的个数

    最后一个bitop命令,可以进行位操作。

    bitop OR res foo1 foo2    #意思是把foo1和foo2做OR运算,结果存入res中。bitop支持的位操作有ND、OR、XOR、NOT四个

    字符串的操作命令就这些了。位的命令还是很有用的,比如我们在存储性别的时候可以把性别的类型设置为一个比特位,这样超级省空间的。

  • 相关阅读:
    《ASP.NET Core项目开发实战入门》带你走进ASP.NET Core开发
    网络监控工具 iftop dstat
    可进行组合的枚举
    查看Qt自带的QSS
    通过文件设置QSS
    QString转QByteArray
    error: jump to case label
    error: static member function cannot have cv-qualifier
    C++ std::vector的大小和容量
    获取QMessageBox返回值
  • 原文地址:https://www.cnblogs.com/Joans/p/5806570.html
Copyright © 2011-2022 走看看