Redis1——基本数据结构

分布式session共享问题 : 在集群环境 第一次访问了A服务器 保持了登录信息到session在A服务器 如果我再发下一个请求被分到了B服务器 B服务器上没有登录信息的session 那他就会提示用户未登录 方法3就是把session放在nosql数据库redis里 这样请求到服务器 服务器可以先去nosql看有没有session 登录没有 因为是内存数据库 获取相当快

在这里插入图片描述
memcached与redis区别: memcached串行 多线程加锁 redis 单线程 + 多路IO复用

redis的几种数据结构 指的是value的结构 redis是键值对数据库嘛 键都是string 值有string List Set zSet hash 这些类型
redis 往不同的数据结构里放值得命令都不一样 有自己得特色
值是string 一般就是 set k1 v1
值是list lpush rpush lpop rpop
值是set sadd k1 v1 smembers
值是hash (field value) hset user id 1 name zhangsan
值是zset zset key1 score1 value1 score2 value2 将一个或多个member元素及其评分加入到有序集合中 好麻烦 score还得自己手动一个一个加 score等于就是用来排序的 让他们变有序

上面这些每一种的数据结构 底层是什么?
zset的底层是用 hash 和 跳表(skiplist)来实现的 跳表等于就是建多层链表索引 空间换时间 跳表的每一层都是一个有序的链表

但需要计算有多少不重复的值 可以用 HyperLogLog 按理说也可以用set 他也是不重复的值 但当数据量特别大 set占用的空间就很大
而 HyperLogLog 并不存值 存的是计算出的基数个数 pfcount key 就可以知道有多少不重复的元素

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值