《Redis实战 - 第一章 初始Redis》 读书笔记

本章重点

Redis与其他软件的相同之处与不同之处。
Redis用法。
使用Python示例代码与Redis进行简单的互动。
使用Redis解决实际问题

1.Redis简介

Redis数据存储结构:K-V数据库(形如map),value共有5种数据类型分别为string,list,set,hash(形如map),zset(有序的set)。
Redis的基本信息及特点:NoSQL数据库,非关系型,无表,不强制关联,内存数据库,能持久化到硬盘,有两种持久化方式,支持主从复制。与关系型数据库比,快,可以用来缓存中间状态的数据,与其他内存数据库相比更灵活。

2.Redis数据结构简介

讲解value的5种数据结构,以及一些基础命令。其中List,set,hash,zset这些集合类型的数据结构中
只支持字符串或者数值类型。

String,字符串:

Set:set key value ,成功返回OK;
Get:返回value;
Del:返回数量。

List,列表,链表结构:

Rpush:返回总数量,开头l代表左,r代表右;
Lrange:lrange key x y(x开始坐标,y结束坐标,0,0表示第一个,0,-1表示全部);
Lindex:返回值;
Lpop:弹出,返回值,开头l代表左,r代表右;

Set,集合,集合中value唯一:

Sadd:返回添加的数量;
Smembers:返回所有;
Sismember:检查是否存在,返回0或1;
Srem:移除,返回数量;

Hash,散列,应该对应的是一个HashMap:

Hset:返回添加数量(key的数量)
Hget:返回值,第一行是key,第二行是value
Hgetall:返回所有值
Hdel:删除值,一个key

Zset,有序集合,相对于set,集合内每一项增加一个浮点类型score字段。

Zadd:zadd key score member 返回添加数量;
Zrange:与lange类似,加withscores,显示score;
Zrangebyscore:使用score当坐标,第二个坐标不能为-1
Zrem:根据member删除值,返回个数

String与Hash两种结构多数命令相似,区别Hash增加前缀H;Set与Zset两种结构命令相似,区别是Set前缀为S,Zset前缀是Z;List自成一体。

3.Redis的一个应用实例

使用redis实现一个文章投票系统。

对文章进行投票

基本需求:用户可以为文章投票,文章根据投票和时间计算分数,系统根据分数对文章进行排序展示。
数据结构定义:
使用Hash存储文章,用户的基本信息,一个hash对应一个文章(用户),其中“标识+连接符+ID”字符串充当redis中的key,举例文章的一个key:“article:9527”,这样多个key组成文章集合;
使用set存为文章投票的用户,一个文章一个set;
使用zset存文章发布时间、文章所得分数,分别使用score存时间和分数,分数初始值为文章创建时间;
投票操作:更新文章对应的投票用户set,插入成功,更新文章hash中的投票分数字段,分数zset中指定文章的分数自增。

发布并获取文章

数据结构延用上文的设计。发布操作生成新文章的ID,初始化对应的Hash和投票用户set,发布时间和分数zset增加新文章信息。使用分数zset批量获取命令获取文章ID,再用存文章的hash获取文章信息。

对文字进行分组

增加文章组set,一个组对应一个set,获取组内文章,使用zinterstore,操作组set和分数zset,可以为组内的文章根据分数排序。

总结

本章介绍了一下redis的基本特性,与其他数据库的简单比较,最后用一个实例说明了一下redis的应用,与传承关系型数据库有比较大的差别,使用相同规则的key存储一类事物是redis存储复杂数据结构的有效手段,这个规则就类似与关系型数据库的表名。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值