Redis的泛泛之谈

Redis是什么?

Redis是一个key-value的nosql(非关系型)数据库,先存到内存中,会根据一定的策略持久化到磁盘,即使断电也不会丢失数据,支持的数据类型比较多,主要用来做缓存数据库的数据和web集群,被当作中央缓存存放session的。

Redis的使用场景

Redis常见的场景有如下几种:
1. 缓存: 把经常需要查询、很少修改的数据,放到读取速度很快的空间(内存)。以便下次访问数据的时间更少,并减轻服务器的压力。
2. 计数器:redis中的计数器是原子性的内存操作,可以解决溢出问题。
3. session缓存服务器:web集群时作为session缓存服务器。

Redis对象保存方式

  1. Json字符串:需要把对象转换为Json字符串,当作字符串处理,直接使用set、get来设置和获取–少量数据对对象或字段不多。
    优点:获取和设置比较简单。
    缺点:没有提供专门的方法,需要将对象转换为Json(使用json包),需考虑JSON转换的性能问题
  2. 字节:需要做序列号,就是把对象序列化为字节来保存–存储百万级的大数据对象。

Redis数据淘汰机制

在redis中,允许用户设置最大使用内存大小server.maxmemeory,在内存限定的情况下是很有用的,譬如,在一台8G的机子上部署4个redis服务点,每一个服务点分配1.5G的内存大小,减少内存紧张的情况,由此获取更为稳健的服务。—内存大小有限,需要保存有限的数据。
因而就需要淘汰一些数据,redis提供了6种淘汰机制:

1.volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰。
2.volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰。
3.volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰。
4.allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰。
5.allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰。
6.no-enviction(驱逐):禁止驱逐数据。
redis确定驱逐某个键值对后,会删除这个数据,并将这个数据变更消息发布到本地(AOF持久化)和从机(主从连接)。

Java访问Redis

1.java客户端使用jedis 来访问redis服务器,类似java通过jdbc访问mysql一样。
2.Spring可以使用spring data来访问redis,而spring data只是对jedis的二次封装。

Redis集群

当一台数据无法满足要求时,可以使用redis集群来处理,类似于mysql的读写分离。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值