Redis 特性,5种value类型和应用场景

Redis作为内存数据库,以其单线程、KV存储等特性受到青睐。相较于memcache,Redis支持多种Value类型如string、list、hash、set和sorted set,适用于不同场景。例如,string可用于统计用户登录天数,list实现分页,hash存储商品详情,set进行抽奖去重,而sorted set则用于实时排行榜。此外,Redis还提供了RDB和AOF两种持久化策略。
摘要由CSDN通过智能技术生成

特点

内存
单线程
KV

IO多路复用器《-》redis
redis只是通过多路复用器获取到IO事件,程序自己要读写IO
获取IO事件-》计算-》R/W
都是串行的(因为是单线程,一次只能处理一个线程)
——》IO的输出其实是有间隔的
在这里插入图片描述
输出是有间隔的:
在这里插入图片描述

比较memcache和redis

memcache:json存在string里
客户端请求数据的时候,只能请求到所有的json数据
在这里插入图片描述
redis:会建立本地方法,存在list
客户端请求的时候,只需要告诉服务器需要哪个数据index,不用操作全量
在这里插入图片描述

单线程:

假设2个client一起来请求,那么redis处理时候肯定是串行的
在这里插入图片描述
串行化,操作是原子
如何利用多核CPU
在这里插入图片描述

5种Value类型和应用场景

string

二进制安全:必须将数据变成字节数组交给redis
不管客户端什么编码集,redis数据不会乱
在这里插入图片描述

127.0.0.1:6379> help @string    help查看所有api
127.0.0.1:6379> set k1
(error) ERR wrong number of arguments for 'set' command
127.0.0.1:6379> set k1 hello
OK
127.0.0.1:6379> get k1
"hello"
127.0.0.1:6379> strlen k1         获取长度
(integer) 5
127.0.0.1:6379> append k1 ooxx
(integer) 9
127.0.0.1:6379> get k1
"helloooxx"
127.0.0.1:6379> set k3 99
OK
127.0.0.1:6379> incr k3           还可以做数字计算
(integer) 100

setbin

开辟字节,把左边index=1的位置设置为1
setbit k1 1 1 

在这里插入图片描述

动态扩宽字节数量
在这里插入图片描述
统计1的个数
0~-1 所有字节的1
0~0 第一个字节上的1
在这里插入图片描述

逻辑运算
bintop or 结果key 要参与的key...

k1: 0100 0001 = @
k2: 0100 0010 = B
k1 and k2 : 0100 0000 = @ ???
k1 or k2 : 0100 0011 = C
在这里插入图片描述

场景
  1. 统计一年365天,用户登陆天数
    每天是一个bit, 一个人就46个字节
    在这里插入图片描述
  2. 京东,在过节时候只要用户登陆了就送礼物,双十一之前要被多少件礼物。(一共2E用户)
    活跃用户数才是备货的参考。
    假设20200101,用户2,8登陆了
    20200102,用户8登陆了
    那么活跃人数就是 这俩日期key的or运算
    在这里插入图片描述
  3. 12306
    在这里插入图片描述

list

双向链表.key指向链表头尾
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值