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
相关推荐
刘大浪20 分钟前
后端数据增删改查基于Springboot+mybatis mysql 时间根据当时时间自动填充,数据库连接查询不一致,mysql数据库连接不好用
数据库·spring boot·mybatis
无敌岩雀27 分钟前
MySQL中的索引
数据库·mysql
a_安徒生1 小时前
linux安装TDengine
linux·数据库·tdengine
程序员学习随笔1 小时前
PostgreSQL技术内幕19:逻辑备份工具pg_dump、pg_dumpall
数据库·postgresql
尘浮生1 小时前
Java项目实战II基于微信小程序的校运会管理系统(开发文档+数据库+源码)
java·开发语言·数据库·微信小程序·小程序·maven·intellij-idea
偶尔。5351 小时前
什么是事务?事务有哪些特性?
数据库·oracle
安迁岚1 小时前
【SQL Server】华中农业大学空间数据库实验报告 实验六 视图
数据库·sql·mysql·oracle·实验报告
xoxo-Rachel2 小时前
(超级详细!!!)解决“com.mysql.jdbc.Driver is deprecated”警告:详解与优化
java·数据库·mysql
JH30732 小时前
Oracle与MySQL中CONCAT()函数的使用差异
数据库·mysql·oracle
蓝染-惣右介2 小时前
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
java·数据库·tomcat·mybatis