1.什么是redis?

Redis是一个开源的基于内存的key-value结构数据库,它可以用作:数据库、缓存和消息中间件。属于NoSql数据库,是对关系型数据库的补充。

2.Redis数据类型

  1. key: 都是字符串<br /> value: 5种类型:
  • String: 字符串
  • Hash: 类似于hashmap
  • List: 有序可重复
  • Set: 无序不可重复
  • ZSet(SortedSet) 有序不可重复

    3.Redis常用命令

    3.1 String:

  • set key value
  • get key
  • setex key 超时时间 value
  • EXPIRE name 10
  • set key value ex 超时时间
  • setnx key value
  • del key

    3.2 Hash:

  • hset key filed value

  • hmset key filed value filed value
  • hget key filed
  • hkeys key
  • hvals key
  • hgetall key
  • hdel key filed

使用场景:hash特别适合用于存储对象,前提是热点数据。例如:存用户信息,商品信息等。

3.3 List:

  • lpush key value value
  • rpush key value value
  • lrange key 0 -1
  • llen key
  • rpop key
  • lpop key
  • lrem key 个数 value

使用场景:大广告位热点数据缓存,热点的队列数据等。

3.4 Set:

  • sadd key value value 添加
  • smembers key 查所有
  • scard key 成员数
  • srem key value 移除
  • sinter key1 key2 交集
  • sunion key1 key2 并集
  • sdiff key1 key2 差集

使用场景:

  1. 需要去重的少量信息,如:黑名单。
  2. 共同的好友查询。

    3.5 ZSet:

  • zadd key score value score value
  • zrange key 0 -1 withscores
  • zincreby key increment member
  • zrem key member [member …]
  • zrangebyscore key min max [WITHSCORES] [LIMIT offset count]

使用场景:
1.视频点击量排名
2.热点文章点击量、收藏量等排名
3.班级学生考试成绩分数排名等

3.6 通用命令

  • KEYS pattern 查找所有符合给定模式( pattern)的 key
  • EXISTS key 检查给定 key 是否存在
  • TYPE key 返回 key 所储存的值的类型
  • TTL key 返回给定 key 的剩余生存时间(TTL, time to live),以秒为单位
  • DEL key 该命令用于在 key 存在是删除 key

4.Spring Data Redis

Spring Data Redis中提供了一个类:RedisTemplate,通过调用它的 opsFor* 方法,可以获取对应类型的数据操作工具类对象。具体分类如下:

  • ValueOperations:String类型数据操作
  • SetOperations:set类型数据操作
  • ZSetOperations:zset类型数据操作
  • HashOperations:针对hash类型的数据操作
  • ListOperations:针对list类型的数据操作

例如:HashOperations hashOperations = redisTemplate.opsForHash();

数据操作工具类的方法名称与Redis的命令非常类似,只要记住Redis的命令,相应API的使用就没有问题。

5.redis的持久化方案

1.RDB

 缺点:可能导致数据丢失<br />           优点:持久化效率高,持久化的是内存中的数据

2.AOF

缺点:执行效率低,会持久化每一条命令,会影响redis的性能
优点:不会导致数据丢失,可以对数据进行恢复