redis常用操作及spring整合redis流程

redis常用操作及spring整合redis流程

1、基本知识

  • 基于键值对的NOSQL数据库,它的key是string,值支持多种数据结构:strings、hashes、lists、sets、sorted sets

  • 所有的数据都存放在内存中,所以他的读写性能惊人

  • 持久化方式:RDB、AOF

    • RDB将数据以快照的方式保存在硬盘,耗时易堵塞,可能影响业务,不适合实时操作,适用于几个小时一次
    • AOF实时性高,将日志以命令的方式存储,占磁盘空间,恢复速度慢。
    • 两者适合结合在一起用
    • 使用简单、支持数据类型多
  • 适用于:缓存、排行榜热门的帖子、计数器(帖子浏览量)、社交网络(点赞、关注、点踩)、消息队列等

  • 内置了16个库,用索引切换,默认为0

  • cmd输入redis-cli可启动redis

  • 常用操作

    • select 1 选择库1
    • flushdb 清空数据库
    • 字符串示例
    • set test:count 1 设置test:count 为1
    • get test:count 取test:count 的值
    • incr test:count test:count 对应的值+1
    • decr test:count test:count 对应的值-1
    • 哈希值示例
    • hset test:user id 1 存key为id,值为1的哈希值,索引为test:user
    • hget test:user id 取test:user 中key为id的哈希值
    • 列表示例,可改为队列 栈等,左进右进左出右出等
    • lpush test:ids 101 102 103 分别把101 102 103 从左边(left)存入
    • llen test:ids 查看list长度
    • lindex test:ids 0 查看test:ids 索引为0的值
    • lrange test:ids 0 2 查看test:ids 索引从0到2的值
    • rpop test:ids 从test:ids 右边pop一个值
    • 集合操作示例,无序不可重复
    • sadd test:stu aaa bbb ccc ddd eee 向集合test:stu 存放五个数据
    • scard test:stu 统计test:stu 元素个数
    • spop test:stu 随机test:stu 弹出一个元素
    • smembers test:stu 查看test:stu 中元素
    • 有序集合示例
    • zadd test:stu 10 aaa 20 bbb 30 ccc 存放了test:stu 三个人的分数和名字
    • zcard test:stu 统计个数
    • zscore test:stu ccc 查test:stu 中ccc的个数
    • zrank test:stu ccc 返回test:stu 中ccc的排名
    • zrange test:students 0 2 取test:stu 中排名0-2的人
      全局数据的操作
    • keys * 查找库里所有的key
    • keys test* 查找库里所有test开头的key
    • type test:stu 查看test:stu 的类型
    • del test:stu 删除test:stu
    • exists test:stu 判断test:stu 是否存在
    • expire test:stu 10 设置test:stu 的过期时间为10s

    2、redis结合IDEA开发流程

引入依赖
配置Redis
	配置数据库参数
编写配置类,构造RedisTemplate
  1. pom.xml引入redis jar包

  2. <dependency>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    
  3. application.properties配置文件写入相关配置

  4. #RedisProperties
    spring.redis.database=11   #一共16个数据库,随便选
    spring.redis.host=localhost   #本机
    spring.redis.port=6379		#端口号
    
  5. 新建配置类

@Configuration
public class RedisConfig {
    @Bean
    public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory factory){
        // 将redis注入工厂
        RedisTemplate<String,Object> template = new RedisTemplate<>();
        template.setConnectionFactory(factory);

        // 设置key的序列化方式
        template.setKeySerializer (RedisSerializer.string());
        //设置value的序列化方式
        template.setValueSerializer (RedisSerializer.json());
        // 设置hash的key的序列化方式
        template. setHashKeySerializer (RedisSerializer.string());
        // 设置hash的value的序列化方式
        template.setHashValueSerializer (RedisSerializer.json());
        // 使设置生效
        template.afterPropertiesSet();

        return template;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值