非关系型数据库 redis

概述

redis 是个内存数据库,由C语言编写.数据以kv
的形式来存储
访问性能高,速读快,掉电数据容易丢失,提供了持久化方案

特点

  1. redis由于是将数据存储在内存中, 故其读取的数据非常快, 每秒钟支持大约 80000次/s的写入操作和 110000次/s读取的操作
  2. redis提供了丰富的数据类型,其有 string,list hash set storted set 五种类型
    注:需要注意: redis中的数据类型指的都是value的数据类型, 其key只有string类型
  3. redis支持将复制非常方便的复制其他任意一台装有redis数据库的服务器中
  4. redis的中的所有的操作都是原子性的, 从来保证数据的完整性
    redis客户端工具 jedis
    jedis的是一款用于redis的数据库的Java客户端工具, jedis提供了一套非常省力的API, 其最大的特点就是其API和redis的命令是相同的, 这样就大大降低了学习的成本, 其本身也是redis官方推荐的一款javaAPI
    jedis 的常用api
    Jedis jedis=new Jedis (“192.168.72.144”, 6379)
    jedis.set(“age”, “19”);
    String age = jedis.get(“age”);
    System.out.println(age);

jedis连接池

当创建jedis的对象的时候, jedis会连接redis的服务器, 获取一个连接, 如果频繁的创建一个连接, 会造成资源的消耗, 在mysql中如果发生这样的现象, 采用的是连接池的技术,提前创建好几个连接,反复使用即可, 在redis中同样也是如此
从连接池中获取jedis的连接对象的工具类
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class JedisUtils {

private static JedisPool jedisPool;

static {
	
	JedisPoolConfig poolConfig = new JedisPoolConfig();
	poolConfig.setMaxIdle(5);//闲时最大的数量
	poolConfig.setMaxTotal(100); //最大有100个
	poolConfig.setMinIdle(3);//最小闲时的数量
	jedisPool = new JedisPool(poolConfig, "192.168.72.144", 6379);
	
}

public Jedis getJedis() {
	
	return jedisPool.getResource();
	
}

}

redis 的持久化

我们知道, redis是将数据存储在了内存当中, 那么当关闭服务器, 内存的资源也就会消失了, 这时存储在redis中的数据也会消失, 那么我们应该如何做呢?
在redis中已经提供了两种持久化的方案
RDB: redis提供的一种基于快照机制实现的持久化方案, 而快照就类似于照相机, 会将一个服务器某个时刻的一个状态整体保存下来, 快照文件一般都非常的小,只有几kb左右

  • 优点: 由于持久化的文件非常小, 适合于做灾难恢复
  • 缺点: 由于redis中持久化的时机问题, 会存在数据丢失的问题
    AOF: redis提供的一种基于日志机制实现的持久化方案, 会将用户操作的所有的命令整体的记录下来保存到日志文件中,一般文件都比较庞大
  • 优点: AOF机制可以让将用户所有的命令都记录下来, 顾其数据保存的比较完整, 不容易丢失
  • 缺点: 持久化的文件比较庞大, 不利于灾难恢复
    RDB保存机制;redis默认是开启RDB机制

redis中五种数据类型

    1. 字符串 String ----重点
    • 特点: 存储所有的字符和字符串
    • 应用场景: 做缓存使用
    1. 哈希 hash
    • 特点: 相当于java中hashMap集合
    • 应用场景: 可以存储javaBean对象, 此种使用场景不多,可被String替代
    1. list集合
    • 特点: 相当于java中linkList, 是一个链表的结构
    • 应用场景: 做任务队列,
      • 在java中客户端提供了线程安全获取集合数据的方式
    1. set 集合
    • 特点: 唯一, 无序
    • 应用场景: 集合运算
      • 例如去重复的操作
    1. 有序set集合: sorted set
    • 特点:唯一, 有序
    • 应用场景: 一般用来做排行榜
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值