Redis

Redis

  1. 数据库的分类
    关系型数据库:关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过对这些关联的表格分类、合并、连接或选取等运算来实现数据库的管理。如:MySQL、Oracle、SQL Server。
    非关系型数据库:NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”泛指非关系型的数据库,区别于关系数据库,它们不保证关系数据的ACID特性。
  2. NoSQL
    分类:
类型描述
键值(Key-Value)存储数据库这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。如:Redis
列存储数据库这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。如:Cassandra, HBase, Riak
文档型数据库文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。
图形(Graph)数据库图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上

特点:

   1.是开源免费的
   2.存在缓冲(内存)中,查询速度快
   3.不支持SQL
   4.没有多表关系
   5.可以存储基本数据类型、对象和集合等格式
   6.不支持事务
  1. Redis介绍
    概念:
    Redis(全称:Remote Dictionary Server 远程数据服务)是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
    应用:
    频繁请求的、变化率低的数据
    缓存
    高并发
    任务队列
    服务器:redis-server.exe
    客户端:redis-cli.exe
    配置文件:redis.windows
  2. 数据类型
    String字符串类型
set key value//设置键和值
get key//获取值
del key//删除

hash哈希类型-Map

hset mapname key value
hget mapname key
hgetall mapname
hdel mapname key1 key2

list列表类型-LinkedList

lpush key value
rpush key value
lrange key start end
lpop key
rpop key
lset key index value

set集合类型

sadd key value
smembers key
srem key value

zset有序集合类型

zadd key score value
zrange key start end
zrange key 0 -1 widthscores//输出带分数的结果
zrem key value
  1. 命令
  keys *//查询所有键
  type key//获取键对应的value的类型:type key
  del key//删除指定key及value
  
  1. 服务运行
    配置文件
    ①环境变量–>新建一个REDIS_HOME
    在这里插入图片描述
    ②path中追加%REDIS_HOME%
    在这里插入图片描述
在解压的 Redis 文件目录下,输入命令 redis-server.exe --service-install redis.windows.conf --loglevel verbose 
(后边的 verbose 表示: 详尽,相当于Java中的 debug级别) 

开启服务

redis-server --service-start 

关闭服务

redis-server --service-stop 

卸载服务

 redis-server --service-uninstall 

服务重命名

redis-server --service-name server-name 
  1. Java操作Redis(Jedis)
    jedis-2.9.0.jar(不同数据类型的操作)
Jedis jedis = new Jedis("localhost",6379); //连接redis服务器
jedis.close();

commons-pool2-2.2.jar

JedisPoolConfig config = new JedisPoolConfig();
JedisPool jedisPool = new JedisPool(config,"localhost",6379);
Jedis jedis = jedisPool.getResource(); // // 从连接池获取一个Jedis实例
  1. 持久化
    RDB(默认)
    概念:RDB持久化是把当前进程数据生成快照保存到硬盘的过程,触发RDB持久化过程分为手动触发和自动触发。
    用法: 在一段时间间隔,检测key的变化情况,然后持久化。
save 900 1
save 300 10
save 60 10000

优缺点:
优:RDB是一个紧凑压缩的二进制文件,代表Redis在某一个时间点上的数据快照。非常适合用于备份,全量复制等场景。
缺:RDB方式数据没办法做到实时持久化/秒级持久化。因为bgsave每次运行都要执行fork操作创建子进程,属于重量级操作,频繁执行成本过高。
AOF(主流)
概念:AOF(append only file)持久化,以独立日志的方式记录每次写命令,重启时再重新执行AOF文件中命令达到恢复数据的目的。AOF的主要作用是解决了数据持久化的实时性。
开启

appendonly yes

记录每一条命令的操作

间隔 ,然后持久化(appendfsync参数)

参数描述
always每次有新命令时,就将缓冲区数据写入并同步到 AOF 文件
everysec(默认)每秒将缓冲区的数据写入并同步到 AOF 文件
no将缓冲区数据写入AOF 文件,但是同步操作到交给操作系统来处理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值