redis介绍
Redis 是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。
Redis支持五种数据类型:
string(字符串),hash(哈希),list(列表),set(无序集合)及 zset(sorted set:有序集合)
内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过 Redis Sentinel 提供高可用,通过Redis Cluster提供自动分区。
Redis 官网:https://redis.io/
Redis用途:
数据库
缓存
基于内存存储的数据库:redis、memcache
Redis的应用场景
缓存
任务队列
网站访问统计
数据过期处理
应用排行榜
分布式集群架构中的session分离
redis的安装
redis持久化
redis默认采取的是rdb持久方式
rdb 持久化策略:
比如说redis存储了1000个key,当其中100key对应的值在60s发生了改变,那么久将redis与
mysql的数据进行同步一次。同步的机制,在redis.confg中进行设置
aof 持久化策略:
redis每改变内存中一条数据,就会将内存与mysql数据同步一次,并且记录日志。安全性更高,
数据不易丢失
rdb 与 aof结合使用
aof 特点:
1、数据是以文件的形式存储
2、每当数据发生改变的时候,都会记录一次日志,就同步一次数据库
rdb 特点:
1、数据是保存在内存,数据是容易丢失的,读写速度快
2、内存发生改变的时间,有redis.conf中的设置有关
900 10000
60 1
300 100
redis的数据类型
redis数据类型一共有5种
string类型
string是最简单的类型,于memcached一样。一个key对应一个value。它的功能更丰先开启富,可以存二进制对象。
redis使用,先开启redis-server服务
list类型
list是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等。操作中key理解为链表的名字。
使用 list 结构,我们可以轻松地实现最新消息排行等功能(比如新浪微博的 TimeLine )。list 的另一个应用就是消息队列,可以利用 list 的 push操作,将任务存在 list 中,然后工作线程再用pop操作将任务取出进行执行。
set类型
set是集合,和我们数学中的集合概念相似,对集合的操作有添加删除元素,有对多个集合求交并差等操作。操作中key理解为集合的名字。比如在微博应用中,可以将一个用户所有的关注人存在一个集合中,将其所有粉丝存在一个集合。因为 Redis 非常人性化的为集合提供了求交集、并集、差集等操作,那么就可以非常方便的实现如共同关注、共同喜好、二度好友等功能,对上面的所有集合操作,你还可以使用不同的命令选择将结果返回给客户端还是存集到一个新的集合中。
sort set 类型
sorted set是有序集合,它比set多了一个权重参数score,使得集合中的元素能够按 score 进行有序排列,比如一个存储全班同学成绩的 Sorted Sets,其集合 value 可以是同学的学号,而 score 就可以是其考试得分,这样在数据插入集合的时候,就已经进行了天然的排序
hash类型
在 Memcached 中,我们经常将一些结构化的信息打包成 hashmap,在客户端序列化后存储为一个字符串的值(一般是 JSON 格式),比如用户的昵称、年龄、性别、积分等。