启动redis

  • 文件地址
    • /usr/local/redis-4.0.0/src/redis-server:Redis服务启动脚本
    • /usr/local/redis-4.0.0/src/redis-cli:Redis客户端脚本
    • /usr/local/redis-4.0.0/redis.conf:Redis配置文件
  • 使用redis
    • 开启服务[root@localhost redis-4.0.0]# ./src/redis-server ./redis.conf
    • redis[root@localhost redis-4.0.0]# src/redis-cli
  • 修改redis配置文件
    • daemonize配置项改为yes
    • requirepass foobared 配置项取消注释,默认为注释状态。foobared为密码,可以根据情况自己指定
    • 将bind 127.0.0.1配置项注释掉

redis常用数据类型(5种)

  • 在redis中key都是string类型,value有常用的5种数据类型
  • 通用指令
    • keys * #查看所有key
    • exist name #判断key是否存在
    • expire key seconds #设置过期时间
    • ttl key #剩余到期时间(time to live)
    • type key #key的类型
  • String:字符串类型
    • set key value
    • get key
    • setex key seconds value #字符串过期时间(set expire time)
    • setnx key value #如果字符串不存在(set not exist)
  • List:列表,有序可重复
    • lpush list values #将一个值或多个值插入到列表的头部
    • rpush list values #将一个值或多个值插入到列表的尾部
    • lrange list 0 -1 #list内全部数据
    • lpop list #移除列表的第一个元素
    • rpop list #移除列表的最后一个元素
    • llen list #获取list长度
    • lrem list 2 three #从list中移除两个three
  • Set:集合,无序不重复
    • sadd set value #set集合添加元素
    • smembers set #查看set集合内容
    • srem set value #移除set中的value元素
    • sdiff set1 set2 #set1 - (set1∩set2)
    • sinter set1 set2 #set1 ∩ set2
    • sunion set1 set2 #set1 ∪ set2
  • Hash:相当于HashMap集合,key -
    • hset hashMap key1 value2
    • hget hashMap key1 #查找hashMap中key为key1的value
    • hdel hashMap key #删除指定键值对
    • hgetall hashMap #获取所有键和值
    • hkeys hashMap #获取所有键
    • hvals hashMap #获取所有值
  • zset:有序集合,在set基础上增加了一个值score(double类型)
    • zadd sortedSet 1 one 2 two 0.1 aa #按分数由小到大
    • zrange sortedSet 0 -1
    • zrangebyscore salary -inf +inf #按score由小到大排序从-∞到+∞
    • zrangebyscore salary -inf +inf withscores #排序带score
    • zrem salary key #查看有多少个key

spring-data-redis使用流程

  1. 导入springboot及redis依赖
  2. 配置application.yml
  3. 操作字符串数据需要编写RedisConfig配置类
  4. API使用
    • redisTemplate.opsForValue—>ValueOperation
      • set,get,delete
    • redisTemplate.opsForList—>ListOperation
      • leftPushAll,range,remove
    • redisTemplate.opsForHash—>hashOperation
      • putAll,keys,values,entries,remove
    • redisTemplate.opsForSet—>setOperation
      • add,members,remove
    • redisTemplate.opsForZset—>zsetOperation
      • add,rangeByScoreWithScore,remove

redis持久化方式

  • rdb持久化方式
    • 备份的是数据本身;(depro)有数据丢失的风险;(pro)备份和数据恢复效率高,是redis默认的选项;
    • 手动触发 :bgsave
    • 自动触发: save 90 1 #save 900 1 : 表示如果900秒内至少1个key发生变化(新增、修改和删除),则重写rdb持久化
  • aof持久化方式
    • 备份的是操作redis的命令流水;默认不开启,需要手动设置
    • appendfsync always:总是,每执行一条命令就持久化一次;数据0丢失,效率低
    • appendfsync everysec:每秒持久化一次;可能会丢失一秒内的数据,aof的默认选项
    • appendfsync no:由操作系统自动调度刷磁盘(性能是最好)