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
相关推荐
遗憾皆是温柔23 分钟前
MyBatis—动态 SQL
java·数据库·ide·sql·mybatis
未来之窗软件服务44 分钟前
Cacti 未经身份验证SQL注入漏洞
android·数据库·sql·服务器安全
fengye2071611 小时前
在MYSQL中导入cookbook.sql文件
数据库·mysql·adb
hudawei9961 小时前
flutter缓存网络视频到本地,可离线观看
flutter·缓存·音视频
小哈里1 小时前
【pypi镜像源】使用devpi实现python镜像源代理(缓存加速,私有仓库,版本控制)
开发语言·python·缓存·镜像源·pypi
CircleMouse2 小时前
基于 RedisTemplate 的分页缓存设计
java·开发语言·后端·spring·缓存
Ailovelearning2 小时前
neo4j框架:ubuntu系统中neo4j安装与使用教程
数据库·neo4j
_星辰大海乀2 小时前
表的设计、聚合函数
java·数据结构·数据库·sql·mysql·数据库开发
未来之窗软件服务3 小时前
solidwors插件 开发————仙盟创梦IDE
前端·javascript·数据库·ide·仙盟创梦ide
yc_12243 小时前
SqlHelper 实现类,支持多数据库,提供异步操作、自动重试、事务、存储过程、分页、缓存等功能。
数据库·c#