1.什么是redis?
Redis是一个开源的基于内存的key-value结构数据库,它可以用作:数据库、缓存和消息中间件。属于NoSql数据库,是对关系型数据库的补充。
2.Redis数据类型
key: 都是字符串<br /> value: 分5种类型:
- set key value
- get key
- setex key 超时时间 value
- EXPIRE name 10
- set key value ex 超时时间
- setnx key value
-
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 差集
使用场景:
- 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的性能
优点:不会导致数据丢失,可以对数据进行恢复
