redis总概
Redis优势
- 性能极高–Redis能读的速度是110000次/s,写的速度是81000次/s。
- 丰富的数据类型–Redis支持二进制案例的Strings, Lists, Hashes, Sets 及Ordered Sets 数据类型操作。
- 原子性-Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
- 丰富的特性– Redis还支持publish/subscribe,通知, key过期等等特性。
Redis数据类型
Redis支持五种数据类型:
- string(字符串)
- hash(哈希)
- list(列表)
- set(集合)
- setsorted set (有序集合)
我们实际项目中比较常用的是string , hash如果你是Redis 中高级用户,还需要加上下面几种数据结构HyperLogLog、Geo、Pub/Sub。
如果你说还玩过Redis Module,像BloomFilter,RedisSearch ,Redis-ML,面试官得眼睛就开始发亮了。
Redis是单进程的
Redis是单进程单线程的,redis利用队列技术将并发访问变为串行访问,消除了传统数据库串行控制的开销。
一个字符串类型的值能存储最大容量是多少?
512M
一、缓存雪崩
我们可以简单的理解为︰由于原有缓存失效,新缓存未到期间(例如∶我们设置缓存时采用了相同的过期时间,在同一时刻出现大面积的缓存过期),所有原本应该访问缓存的请求都去查询数据库了,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机。从而形成一系列连锁反应,造成整个系统崩溃。
三、缓存预热
缓存预热这个应该是一个比较常见的概念,相信很多小伙伴都应该可以很容易的理解,缓存预热就是系统上线后,将相关的缓存数据直接加载到缓存系统。这样就可以避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题!用户直接查询事先被预热的缓存数据!
单线程的redis为什么这么快
- (一)纯内存操作
- (二)单线程操作,避免了频繁的上下文切换
- (三)采用了非阻塞I/O多路复用机制
Redis支持的Java客户端都有哪些﹖官方推荐用哪个?
Redisson、Jedis、lettuce等等,官方推荐使用Redisson。
redis的持久化策略 RDB,即 Redis DataBase,以快照形式将数据写入一个临时文件,持久化结束后,用这个临时文件替换上次持久化的dump文件,达到数据恢复。
默认开启,见redis.conf。
AOF,即 appendonly file,将执行过的指令记录下来,数据恢复时按照从前到后的顺序再将指令执行一遍,实现数据恢复。 默认关闭,开启方法,修改配置文件redis.conf:appendonly yes。
应用场景
4,排行榜/计数器
Redis在内存中对数字进行递增或递减的操作实现的非常好。集合(Set )和有序集合( Sorted Set )也使得我们在执行这些操作的时候变的非常简单,Redis,只是正好提供了这两种数据结构。所以,我们要从排序集合中获取到排名最靠前的10个用户-我们称之为"user_scores”,我们只需要像下面一样执行即可∶当然,这是假定你是根据你用户的分数做递增的排序。如果你想返回用户及用户的分数,你需要这样执行︰ZRANGE user_scores 010 WITHSCORES Agora Games就是一个很好的例子,用Ruby实现的,它的排行榜就是使用Redis 来存储数据的,
你可以在这里看到。
5、发布/订阅
最后(但肯定不是最不重要的)是Redis的发布/订阅功能。发布/订阅的使用场景确实非常多。我已看见人们在社交网络连接中使用,还可作为基于发布/订阅的脚本触发器,甚至用Redis的发布/订阅功能来建立聊天系统!
48、如果有大量的key需要设置同一时间过期,一般需要注意什么?
如果大量的key过期时间设置的过于集中,到过期的那个时间点,redis可能会出现短暂的卡顿现象。一般需要在时间上加一个随机值,使得过期时间分散一些。
- 分布式中使用Redis实现Session共享(一)
- redis的安装与一些基础操作
- redis 有序集合
- Spring Data Redis 实践
- Springmvc集成redis集群
- redis 环境安装
- SpringMvc+MyBatis+MySQL+Maven+Redis搭建一个基础的web项目
- spring-data-redis集成的两种方式
- redis设置键的生存时间或过期时间
- 使用Java(Springboot)操作Redis
- java连接Redis, Maven管理
- Redis 常用的命令
- Redis数据类型:Sorted Sets操作指令
- Redis作者谈Redis应用场景
- 基于Twemproxy的Redis集群方案
- CentOS6 安装 Redis
- Redis 高性能内存存储
- redis 配置文件详解
- win7x64下的redis安装与使用
- redis.clients.jedis.exceptions.JedisDataException: WRONGTYPE Operation against a key holding the wrong kind of value