Redis相关技术内容

1. Redis整体的技术全景

  • 应用场景:数据结构的应用、缓存应用、集群应用

  • 底层原理:线程模型、主从复制、负载均衡

    ​ 数据结构、哨兵机制、数据分片

    ​ AOF、 RDB

2. 并发承载

  • redis(官方 10w/s)
  • 数据库->mysql 并发范围:写:600/s 读 2000/s

3. Redis的基本数据类型

基本数据类型:string、hash、list、set、zset。

3.1 string类型

  • setnx 不存在才set

    set a 1 nx

  • setxx 存在才set

    set b 2 xx

  • mset 批量set

    mset a 1 b 2 c 3

  • mget 批量获取

    mget a b c d

  • incr incr-key 自增值

    set incr-key 1

    incr incr-key

  • decr incr-key 自减

    decr incr-key

  • getset hello hello 获取到旧的值

    set hello 1

    getset hello newvalue 此时返回的是1,但是hello已经被设置成newvalue

  • setrange hello 5 x 将hello 第5的位置设置成x

  • getrange hello 1 4 获取范围

3.2 hash类型

可以用于存储关系型数据库的二维表结构的数据。

  • hset user:1 name li 在user:1的数据上存储了name:li的值

  • hset user:1 age 24

  • hmset user:2 name zhang age 18 批量设置

  • hsetnx user:1 name li

  • hget user:1 name 拿到user:1数据上的name对应的值

  • hmget user:1 name age

  • hlen user:1 取出长度数据

  • hvals user:1 取出所有的key的值

  • hkeys user:1 取出所哟key的名称

  • hgetall user:1 取出所有key value

  • hincrby user:1 id 2 自增内部字段的值

3.3 list类型

存储最多的元素个数:2的32次方-1个(4294967296)

有序的元素。

  • rpush demolist a 向右边插入一个值
  • lpush demolist b 向左边插入一个值
  • lrange demolist 0 -1 取出list的所有值列表
  • lpop demolist 2 弹出元素右边两个(不传入参数则默认为一个)元素
  • lrem demolist 2 y 从作向右删除2个y
  • ltrim demolist 0 1 保留0-1位置的值
  • lset demolist 1 xx 将1位置值改成xx
  • lindex demolist 1 取出1位置的值
  • llen demolist list的长度

应用场景可以是:文章列表,做分页有序,支持范围的业务。

3.4 set类型

没有重复的数据集合

  • sadd demoset a b c d e f d d 添加后会进行去重
  • smembers demoset 查看集合所有值
  • srem demoset c d 删除指定值
  • smemebers demoset a 查询元素是否存在
  • scard demoset 查存在多少个元素
  • srandmember demoset 随机返回一个元素
  • spop demoset 弹出一个元素
  • del demoset 删除key
  • sinter set1 set2 求并集
  • sunion set1 set2 求交集
  • sdiff set1 set2 求差集
  • sinterstore interset set1 set2 将交集结果存在interset(set)中

应用场景:打标签,生成随机数这样的场景。

3.5 zset类型

结构是key :二维的score、member表格存储的值

  • zadd zset 90 lisi

  • zadd zset 95 wangwu

  • zadd zet 100 zhangsan

  • zcard zset 查看值多少条记录

  • zscore zset lisi 查看lisi的分数

  • zrank zset lisi 查看lisi的排名

  • zrevrank zset lisi 反转排序取出lisi的排名

  • zincrby zset 6 lisi 将lisi的分数增加6分

  • zrange zset 0 1 withscores 获取到按照升序、排名前二的姓名和成绩

  • zrevrange zset 0 1 withscores 反转获取到降序、排名前二的姓名和成绩

  • zrangebyscore zset 96 100 分数范围查询

应用场景:求平均成绩

  • zinterstore zsetavg 2 set1 set2 weights 0.5 0.5
  • zrange zsetavg 0 -1 withscores
相关推荐
麦香--老农8 分钟前
windows 钉钉缓存路径不能修改 默认C盘解决方案
缓存·钉钉
m0_7482448316 分钟前
StarRocks 排查单副本表
大数据·数据库·python
C++忠实粉丝26 分钟前
Redis 介绍和安装
数据库·redis·缓存
wmd1316430671241 分钟前
将微信配置信息存到数据库并进行调用
数据库·微信
丰云43 分钟前
一个简单封装的的nodejs缓存对象
缓存·node.js
Oneforlove_twoforjob1 小时前
【Java基础面试题025】什么是Java的Integer缓存池?
java·开发语言·缓存
泰伦闲鱼1 小时前
nestjs:GET REQUEST 缓存问题
服务器·前端·缓存·node.js·nestjs
是阿建吖!1 小时前
【Linux】基础IO(磁盘文件)
linux·服务器·数据库
凡人的AI工具箱1 小时前
每天40分玩转Django:Django国际化
数据库·人工智能·后端·python·django·sqlite
ClouGence1 小时前
Redis 到 Redis 数据迁移同步
数据库·redis·缓存