Redis学习小记1 - Redis基础及整合

Redis学习小记 - Redis基础及整合

  1. NoSQL分类

    NoSQL(泛指非关系型的数据库)分为一下四类:

    • 键值(Key-Value)存储数据库:Redis
    • 列存储数据库
    • 文档型数据库
    • 图形(Graph)数据库
  2. Redis入门

    1. Redis是什么

      Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

    2. Redis能干嘛

      1. 内存存储、持久化(rdb、aof)
      2. 效率高、可以用于高速缓存
      3. 发布订阅系统
      4. 地图信息分析
      5. 计时器、计数器(浏览量1 )
    3. 特性

      1. 多样的数据类型
      2. 持久化
      3. 集群
      4. 事务

    官网:https://redis.io/

    推荐在linux上开发

  3. Redis安装

    • window github:https://github.com/tporadowski/redis/releases
    • linux 略
  4. Redis使用

    1. 切换数据库| SELECT 1 默认有16个数据库
    2. 查看数据库大小| DBSIZE [-n]
    3. 查看数据库所有的key| KEYS *
    4. 清空数据库| FLUSHDB /FLUSHALL
    5. 查看键是否存在| EXISTS [key name]
    6. 移动键到某个数据库| MOVE KEY -n
    7. 设置键的过期时间| EXPIRE [key name] -s
    8. 查看键的过期时间| TTL [key name]
    9. 查看键的类型| TYPE [key name]
    10. 设置过期时间- EXPIRE 设置过期时间
  5. Redis五大数据类型

    • strings
      • APPEND NAME VALUE 追加字符串
      • STRLEN 字符串长度
      • INCR | DECR KEY2(仅限integer)
      • RANGE 截取字符串GETRANGE 替换SETRANGE
      • setex ,setnx 设置过期时间,设置不存在创建
      • MSET MGET
      • 对象
    • hashes
      • HSET HGET HGETALL 设置 获取数据
      • HMGET HMSET
      • HDEL 删除指定的key
      • HLEN 获取hash的字段常量
      • HEXISTS HASH FIELD 判定字段是否存在
      • HKEYS / HVALS 获取所有的key / values
      • HINCRBY
      • HSET
    • lists
      • LINDEX 定位
      • [L/R]PUSH POP 添加 删除
      • LREM 移除
      • LTRIM 修剪
      • LRANGE 范围
      • LSET 将指定下标的值替换
      • LINSERT 插入
    • sets
      • SADD 增加
      • SMEMBERS 查看set成员
      • SMOVE 移动set的值到另一个set集合
      • SISMEMBER 判断值是否在set中
      • SDIFF SET1 SET 差集
      • SINTER SET1 SET 交集
      • SUNION SET1 SET 并集
      • SCARD 获取集合元素个数
    • Zset 在set的基础上,增加了一个值
      • ZADD
      • ZRANGE MYSET 0 -1
      • ZRANGEBYSCORE MYSET -INF +INF WITHSCORES 从小到大排序
      • ZREVRANGE MYSET 0 -1 WITHSCORES 从高到低排序
      • 移除指定元素 ZREM
      • ZCARD 获取有序集合元素个数
      • ZCOUNT MYSET 0 1 获取区间指定数量
  6. 三大特殊数据类型

    1. geospatial 地理位置 本质zset

      • GEOADD 添加地理位置(经度,纬度,名称)添加到指定的键

      GEOADD chia:city 116.40 30.90 beijin

      GEOPOS 获取指定城市的经度纬度

      GEODIST chia:city beijin shanghai km

      • m for meters.
      • km for kilometers.
      • mi for miles.
      • ft for feet.

      GEORADIUS chia:city 100 30 400 km

    2. hyperloglogs 基数

      • PFADD KEY A B C D
      • PFCOUNT KEY
      • PFMERGE KEY1 KEY KEY2 合并到KEY1
    3. Bitmaps 位存储

      • SETBIT GETBIT
      • BITCOUNT
  7. Redis事务

    • Redis 单条指令保证原子性、事务不保证原子性

    • 本质:一组命令的集合 Exec

    • redis事务

      • 开启事务 multi
      • 命令入队 。。
      • 执行事务 exec
    • 放弃事务 discard

    • 编译型异常 代码错误,编译失败 不会执行事务的命令

    • 运行时异常 其他命令正常执行

    • 监控 watch

      • 悲观锁
        • 无论什么时候都加锁
      • 乐观锁
        • 不会上锁 更新数据的时候判断
        • 获取version
        • 更新的时候比较version 使用watch可以当作redis乐观锁操作
  8. Jedis

    • java连接redis工具
    <!-- jedis-->
            <!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
            <dependency>
                <groupId>redis.clients</groupId>
                <artifactId>jedis</artifactId>
                <version>3.5.1</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.75</version>
            </dependency>
    
  9. springboot整合

    • 导入启动器依赖
            <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        	</dependency>
    

猜你喜欢

转载自blog.csdn.net/weixin_47490310/article/details/114239642