美文网首页技术分享
Redis打怪升级,技术干货(壹)

Redis打怪升级,技术干货(壹)

作者: 小梭蟹 | 来源:发表于2019-10-16 17:08 被阅读0次

本文准备从以下几个方面去讲解redis打怪进阶:
1)Redis的安装。
2)Redis的数据类型及应用场景。

Redis安装

下载地址:http://redis.io/download
安装步骤:
1,# 安装gcc (因redis是c语言写的)
yum install gcc
2,#把下载好的redis-5.0.3.tar.gz放在/user/local文件夹下,并解压
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
tar xzf redis-5.0.3.tar.gz
cd redis-5.0.3
3,#进入到解压好的redis-5.0.3目录下,进行编译与安装
make
4,#启动并指定配置文件
src/redis-server redis.conf(注意要使用后台启动,所以修改redis.conf里的daemonize改为yes)
5,#验证启动是否成功
ps -ef | grep redis
6,#进入redis客户端
src/redis-cli
7,#退出客户端
quit
8,#退出redis服务
1)pkill redis-server
2) kill 进程号
3) src/redis-cli shutdown

redis五种数据结构:String、Hash、List、Set、Zset

1)String

字符串常用操作

set key value //存入字符串键值对
mset key value [key value ...] //批量存储字符串键值对
setnx key value //存入一个不存在的字符串键值对
get key //获取一个字符串键值
mget key [key ...] //批量获取字符串键值
del key [key...] //删除一个键
expire key seconds //设置一个键的过期时间(秒)

原子加减

incr key //将key中储存的数字值加1
decr key //将key中储存的数字值减1
incrby key increment //将key所储存的值加上increment
decrby key decrement //将key所储存的值减去decrment

应用场景:

计数器:
incr article:readcount:{文章id}
get article:readcount:{文章id}


image.png

2)Hash

相当于一个大map,多了外面一层key。然后map中的value里面又有key和value
Hash常用操作:
Hset key field value //存储一个哈希表key的键值。
Hget key field value [field value... ] //获取哈希表key对应的field键值。

Hash应用场景:

. 电商购物车
1)以用户id位key
2)商品id位field
3)商品数量为value


image.png

· 购物车操作

1)添加商品 ->hset cart:10001 10088 1

  1. 添加数量 ->hincrby cart:1001 10088 1

  2. 商品总数 ->hlen cart:1001

  3. 删除商品 ->hdel cart:1001 10088

  4. 获取购物车所有商品 ->hgetall cart:1001
    优缺点:
    ·优点
    1)同类数据归类整合储存,方便数据管理
    2)相比String操作消耗内存与cpu更小
    3)相比String储存更节约空间
    ·缺点
    1)过期功能不能使用在field上,只能用在key上
    2)Redis集群架构下不适合大规模使用。

3) List

· List常用操作
lpush key value [value ...] //将一个或多个值value插入到列表的表头(最左边)
rpush key value [value ...] //将一个或多个值value插入到列表的表尾(最右边)
lpop key //移除并返回key列表的头元素
rpop key //移除并返回key列表的尾元素


image.png

应用场景:
微博和微信公众号消息流


image.png

4)Set

· Set常用操作

sadd key member [member ...] //往集合key中存入元素,元素存在则忽略,若key不存在则新建。
srem key member [member ...] //从集合中key中删除元素
smembers key //获取集合中所有的元素
scard key //获取集合key的元素个数
srandmember key [count] //从集合key中选出count个元素。元素不从key中删除
spop key [count] //从集合key中选出count个元素,元素从key中删除。

·Set运算操作

sinter key [key ...] //交集运算
sinterstore destination key [key ...] //将交集结果存入新集合destination中
sunion key [key ...] //并集运算
sunionstore destination key [key ...] //将并集结果存入新集合destination中
sdiff key [key ...] //差集运算
sdiffstore destination key [key ...] //将差集结果存入新集合destination中

应用场景
· 1 微信抽奖小程序
image.png

1)点击参与抽奖加入集合
sadd key {userId}
2)查看参与抽奖所有用户
smembers key
3)抽取count名中奖者
srandmember key [count] / spop key [count]

2 微信微博点赞,收藏,标签
image.png

1)点赞
sadd like:{消息id} {用户id}
2)取消点赞
srem like:{消息id} {用户id}
3)检查用户是否点过赞
sismember like:{消息id} {用户id}
4)获取点赞的用户列表
smembers like:{消息id}
5)获取点赞用户数
scard like:{消息id}

3 集合操作
image.png

sinter set1 set2 set3 ->{c}
sunion set1 set2 set3 ->{a,b,c,d,e}
sdiff set1 set2 set3 ->{a}

4 集合操作实现微博微信关注模型
image.png

1)诸葛关注的人:
zhugeSet -->{yangguo,sima,luban}
2)杨过关注的人:
yangguoSet -->{zhuge,sima,luban,guojia}
3)司马关注的人:
simaSet-->{zhuge,yangguo,guojia,luban,xunyu}
4)诸葛和杨过共同关注:
sinter zhuge lisi -->{sima,luban}
5,诸葛关注的人也关注(杨过):
sismember simaSet yangguo
sismember lubanSet yangguo
6)诸葛可能认识的人:
sdiff yangguoSet zhugeSet -->{zhuge,guojia}

5 集合操作实现电商商品筛选
image.png

5)Zset

应用场景

Zset集合操作实现排行耪


image.png

1)点击新闻
zincrby hotNews:20191016 1 守护香港
2)展示当日排行前十
3)七日搜索榜单计算
zunionstore hotNews:20191016 7
4)展示七日排行前十
zrevrange hotNews:20191016 -20191023 0 10 withscores

后续更精彩!!

相关文章

  • Redis打怪升级,技术干货(壹)

    本文准备从以下几个方面去讲解redis打怪进阶:1)Redis的安装。2)Redis的数据类型及应用场景。 Red...

  • Redis打怪升级,技术干货(贰)

    第二篇文章终于跟读者见面了。 本文准备从以下几个方面去讲解redis打怪进阶(二):1)Redis持久化 。2)R...

  • 升级打怪

    每一天的你都在升级打怪升级的往复循环中。生命能量补给要升级打怪,和周围的人、事物和谐相处要升级打怪,反思、自省,心...

  • 不断“打怪”升级

    人生就是一直不停地“打怪”升级中:小学生们需要“打怪”才能“升级”成为初中生,初中生们需要“打怪”才能“升级”成为...

  • 游戏人生还是人生游戏

    人生就像游戏打怪升级一样, 有师傅带的越级打怪; 有富豪带的一群人帮你打怪升级; 还有人独自升级。 人生就像游戏里...

  • 经历都是财富

    人生就是打怪升级~

  • 【干货】WordPress系统级更新,程序升级

    【干货】WordPress系统级更新,程序升级 网站技术日新月异,更新升级是维护工作之一,长时间不升级的程序,就如...

  • 干货:利用游戏直播引流操作cpacps项目-

    干货:利用游戏直播引流操作cpacps项目 大家喜欢玩游戏么?除了升级打怪,它还有引流的妙用哦,一起来看看怎么操作...

  • 益言益行@022

    不断的升级打怪 任何一位优秀的人,都是不断的走在升级打怪的路上。除了埋头深耕就别无他路。

  • 提高摄影水平8大真言

    壹:记录|思悟 一:不被各种吃喝玩乐所动摇的勤奋 很简单的道理,就如同打怪升级,花费的时间和学习摄影的效果是成正比...

网友评论

    本文标题:Redis打怪升级,技术干货(壹)

    本文链接:https://www.haomeiwen.com/subject/kguumctx.html