Redis入门---字符串类型

阅读目录redis

1.keys * 命令性能

首先咱们须要使用set命令创建一个名为 key1 的键。以下命令:编码

redis> set key 1
ok

以下所示:spa

如上代码,当咱们使用 keys * 命令就能得到Redis中全部的键了。可是当键的数量不少的话会稍微影响性能,不建议在生产环境中使用。3d

2.判断一个键是否存在(exists key)code

使用语法以下:exists keyblog

若是该键存在则返回整数类型1,不然返回0,以下所示:索引

3.删除键rem

能够删除一个或多个键,返回值是删除的键的个数,以下基本语法:字符串

redis> del key

以下所示:

如上第二次执行del命令是,由于key键已经被第一次删除了,所以返回0.

4.获取键值的数据类型

基本语法以下:
type key

type命令用来获取键值的数据类型,返回值多是string, hash(散列类型),list(列表类型),set(集合类型),zset(有序集合类型)。好比以下代码:

5 递增数字(incr)

使用命令以下:incr num

以下所示:

字符串类型能够存储任何形式的字符串。当存储的字符串是整数形式时,Redis提供了一个使用的命令 incr, 它的做用是让当前的键值递增,而且返回递增后的值。可是当键值不是整数时Redis会提示错误;以下所示:

咱们可使用该语法来实现文章访问量或点击量的统计功能。每次访问文章的时候咱们可使用incr命令使相应的键值递增便可。

6.增长指定的整数 (INCRBY)

使用命令以下:INCRBY key increment

用法以下:

7.减小指定的整数 (DECRBY)

DECR keyDECRBY key decrement

DECR命令和INCR命令相同,是让键值递减。好比以下:

DECRBY命令的做用是递减多少,好比 DECRBY key 5 就至关于 INCRBY key - 5; 以下所示:

8.增长指定的浮点数(INCRBYFLOAT)

基本语法以下:INCRBYFLOAT key increment

9.向尾部追加值(APPEND)

基本语法:APPEND key value

APPEND的做用是向键值的末尾追加value。若是该键不存在则将该键的值设置为value,也就是至关于 SET key value. 返回值是追加后字符串的总长度,好比以下所示:

10.获取字符串的长度(STRLEN)

基本语法以下:STRLEN key

STRLEN 命令返回键值的长度,若是该键不存在的话则返回0,好比以下:

字符串类型能够存储2进制数据的,所以字符串能够存储任何编码的字符串。若是Redis接收到的是使用UTF-8编码的中文的话,那么一个中文的长度是3,所以 "我是空智" 的长度就是12了。

11.同时得到/设置多个键值 (MSET)

使用基本语法以下:MSET key value [key value ....]

好比以下所示:

获取多个值固然就是 MGET 了。

12.位操做

咱们都知道一个字节是由8个二进制位组成的。Redis提供了4个命令能够直接对二进制位进行操做。

1. GETBIT key offset

该命令是能够得到一个字符串类型键指定位置的二进制位的值(0或1)。它的索引值是从0开始的。

好比我设置 key 值为 'bar';

127.0.0.1:6379> set key bar
OK

bar 的3个字母 'b', 'a', 'r'对应的ASCII码分别为9八、97和114. 那么转换成二进制就变成了 011000十、0110000一、和 01110010 这样的。

以下图所示演示:

如上图 GETBIT key 0; 值就是 二进制中的第一位,所以值就是0. GETBIT key 6 的值就是二进制中的第七位,因此为1(由于索引值是从0开始的)。

可是若是须要获取的二进制位的索引值超过了键值的二进制位的实际长度,那么它的默认值就是0了,以下图所示:

2. SETBIT key offset value

SETBIT命令能够设置字符串类型键指定位置的二进制位的值,返回值是该位置的原来的值。好比我如今将key设置为字符串 "bar", 那么它的ASCII编码就是 98 97 114了,那么对应的二进制就是:011000十、0110000一、01110010 这样的。

而后咱们如今使用位操做符将它的索引第6位设置为0,第七位设置为1. 以下所示:

如上咱们将它的第六位设置为0,它返回了1,由于6是原来值的第七位(索引值从0开始的)。而后把它的第七位设置1,索引在二进制为上它就是第八位。所以返回0. 最后它的值就是 011000001 、01100000一、01110010 这样的. 所以ASCII编码就是 99,97,114 这样的了,所以使用 get key 获取到的字符串就是 aar了。

3. BITCOUNT key [start] [end]
该命令做用是能够得到字符串类型键中值是1的二进制位个数。好比以下:

如上bar的二进制是:011000十、0110000一、01110010 这样的。所以使用 BITCOUNT key; 返回的是字符串类型键值是1的二进制为个数就是10了。

咱们能够经过参数来限制统计的字节范围,好比咱们但愿统计前两个字节,以下命令:

redit> BITCOUNT bar 0 1

如上 是从0开始,1结束的字节,也就是 011000十、01100001 这个中的多少个1,所以返回6.

4. BITOP operation destkey key [key ...]

BITOP命令能够对多个字符串类型键进行位运算、而且会将结果存储到destkey参数指定的键中。BITOP命令支持运算操做有AND、OR、XOR、和 NOT. 咱们下面对 bar 和 aar 进行 OR运算。以下代码:

如上分析:bar 的ASCII编码是 9八、9七、114 所以二进制位就是:011000十、0110000一、01110010, 而 aar 的二进制位就是0110000一、0110000一、01110010。 所以 他们进行 OR 运算就变成了 01100011 01100001 01110010. 所以他们的ASCII编码就是 9九、9七、114 也就是字符串 car 了。

相关文章
相关标签/搜索