设为首页 加入收藏

TOP

读书笔记——《redis入门指南(第2版)》第三章 入门(一)
2019-09-17 18:51:07 】 浏览:88
Tags:读书 笔记 redis 入门 指南 第三章

3 、redis的5种数据类型及相应命令

redis不区分命令大小写。

  

string 512m

一个散列类型键可包含至多232-1个字段

一个列表类型键最多能容纳232-1个元素

一个集合类型键最多能容纳232-1个元素

  

3.1、一些实用的基础命令

keys pattern

 

exists key

返回值:存在返回1,不存在返回0

del      key1 [key2 key3 ...]

返回值:删除的键的个数

type    key

返回值:string、hash、list、set、zset

 

技巧:删除所有复合规则的键(注意del不支持通配符)

方案1

(推荐)

在linux命令行执行下面命令:

[root@tkafka ~]# redis-cli del `redis-cli keys "a*"`

注意用的反单引号,将redis-cli keys "a*"命令的结果作为redis-cli del命令的参数。

方案2

在linux命令行执行下面命令:

[root@tkafka ~]# redis-cli keys "a*" | xargs redis-cli del

利用的是linux管道和xargs命令

 

3.2、字符串类型[string]

         字符串类型是redis中最基本的数据类型,是其它4种数据类型的基础,例如列表类型是以列表的形式组织字符串,集合类型是用集合的形式组织字符串。

string可存储任何形式的字符串,比如数值形式的字符串,二进制形式的字符串,json格式的字符串等,也就是说string能存储数值、图片、json化对象等。

基础命令

set          key value

get          key

 

mset        key value [key2 value2 ...]

mget       key [key2 ...]

 

append   key value

描述:向键值的末尾追加value,如果键不存在则相当于set key value。

返回值:追加后的字符串长度。

strlen      key

你好(6)  ab(2)

-- 当字符串类型存储的是【整数形式的字符串】时,才可以用的命令,否则报错:      

incr          key

incrby      key increment

         注意:若key不存在,incr命令会默认key的值为0,再进行递增;若key的值不是整数形式的字符串,redis会报错。

         返回值:返回递增后的值。

decr         key

decrby     key decrement

这两个指令功能都可以用 incrby key increment 实现

incrbyfloat key increment

 

--位操作命令:

getbit      key offset

 

setbit      key offset value

 

bitcount key [startByteIndex] [endByteIndex]

统计字符串类型键中值是1的二进制位的个数。

可以加两个参数来限制统计的字节范围[0开始]。

bitop        operation destkey key1 key2 … keyN

对多个字符串类型键进行位运算,并将结果存储destkey参数指定的键中,operation可选AND、OR、XOR、NOT。

bitpos      key bitValue [startByteIndex] [endByteIndex]

获得指定键中第一个位值为0或1的二进制位的偏移量[0开始]。bitValue可选0、1。

可以加两个参数来限制查询的字节范围[0开始]。

     

 

注意:包括incr在内的所有redis命令都是原子操作,无论多少客户端同时连接,都不会出现并发性的安全问题。但是如果你希望在程序自己写一个方法来实现incr命令的效果,就得自己在代码层面保证该方法是线程安全的。

实践

1、键命名实践:【对象类型名:对象id:对象属性名】;如user:1:age

多个单词用“.”分隔,如user:2:first.name

2、  文章访问量

对每篇文章都用一个键article:articleId:visit.count来记录该篇文章的访问量,访问一次就incr一次。

3、自增id

为一类对象如article定义一个键如articles:count,用于保存该类对象的数量。

每要增加一个该类对象时都先做一次incr,incr的返回值即可作为该新增对象的id。

4、存储文章数据(下节会讲这种实现方式的缺陷)

键名article:articleId:article.Data  键值:articleTitle,articleAuthor,aticleContent,articleTime序列化后的字符串。

获取文章数据时,获取键值后进行反序列化即可。

5、位操作命令实践

 

 

 

 

3.3、散列类型[hash]

 

 redis是采用字典结构<key, value>存储数据的,在此之上,散列类型键的键值也是字典结构的<key, <field, value>>,其中的value只能是基础的字符串类型。redis中的数据类型不支持数据类型嵌套,也就是说hash、list、set、zset中的元素只能是基础的字符串类型。

      &nbs

首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇spark-windows(含eclipse配置).. 下一篇DQL-联合查询

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目