JavaWeb——Redis数据库之Windows下环境搭建与基本操作(Redis命令操作、Redis数据结构、Redis的持久化配置)

2020-09-25 10:55:32 浏览数 (1)

1 Redis 概述

Redis是一款高性能的NoQSQL系列的非关系型数据库,那么关系型和非关系型数据库有什么区别呢?

区别

关系型数据库

非关系型数据库

常见数据库

MySQL、Oracle等

Redis、hbase、MongDB等

形式

表的形式存储

存储key:value形式;

特点

数据之间有关联关系; 数据存储在硬盘文件中;

数据之间没有关联关系; 数据存储在内存中;

以上仅是简单的对比,关系型数据库与NoSQL数据库是互补的关系,通常情况下使用关系型数据库,在适合使用NoSQL的时候使用NoSQL数据库,以弥补关系型数据库的不足。一般会将数据存储在关系型数据库中,在NoSQL数据库中备份存储关系型数据库的数据

操作关系型数据库是非常耗时的,若要经常查询一些不太经常变化的的数据,可以使用缓存的思路解决这个问题,提高整体的查询性能,提升用户体验。

那么缓存的选择有很多方式,比如可以在当前服务器开辟一块内存空间,利用Map集合当做缓存,但是Map集合只能是让当前项目有缓存,对于分布式的部署来说,会有多台电脑,Map集合就不合适了,所以此时就有了非关系型数据库的用武之地。因为该类数据库数据存储在内存中,且可以部署独立的机器,可以让一个机器的所有内存被数据库独占,这是Map做不到的,因为其运行在Java虚拟机中,虚拟机只能固定分配一定空间的内存,且内存较小。如今的互联网中用Redis做缓存是比较多的。

2 Redis环境搭建

1)软件下载:直接从官网下载安装包,若不会FQ也可以从Redis中文网下载,不过后者的最新版本一般低于前者:

  • Redis教程网址:https://www.redis.net.cn/tutorial/3503.html
  • Window安装包下载:https://github.com/dmajkic/redis/downloads
  • Linux安装包下载:http://www.redis.net.cn/download/

2)安装:直接解压即可,无需安装,需要了解几个文件:

  • redis.windows.conf:配置文件;
  • redis-cli.exe:redis的客户端;
  • redis-server.exe:redis服务器端;

先双击redis-server.exe启动redis服务器,再双击redis-cli.exe打开客户端,就可以在客户端操作了

3 Redis的命令操作

操作Redis的方法有命令操作、Java代码方式,首先了解下Redis的数据结构,非常重要。

3.1 Reids的数据结构

Redis存储的是键值对:key,value形式的数据,其中key都是字符串,value有5种不同的数据结构:

  • 1)字符串类型 string
  • 2)哈希类型hash:map格式
  • 3)列表类型 list:linkedlist格式,允许重复
  • 4)集合类型 set:不允许重复
  • 5)有序集合类型 sortedset:自动排序,且不重复

3.2 Reids的命令操作

1)字符串类型 string:

  • 存储:set key value
  • 获取:get key
  • 删除:del key

2)哈希类型hash:map格式

  • 存储:hset key field value
  • 获取:hget key field获取指定field对应的值,hgetall key获取所有的field和value
  • 删除:hdel key field

3)列表类型 list

列表按照插入顺序排序,可以添加元素到列表的头部或尾部。

  • 添加:lpush key value,将元素添加到列表左边;           rpush key value,将元素添加到列表右边;
  • 获取:lrange key start end,范围获取;
  • 删除:lpop key,删除列表最左边的元素并将其返回;           rpop key,删除列表最右边的元素并将其返回;

4)集合类型 set:不允许重复

  • 存储:sadd key value
  • 获取:smembers key,获取集合中所有元素
  • 删除:srem key value,删除集合中的某个元素

5)有序集合类型 sortedset:自动排序,且不重复

  • 存储:zadd key score value,存储数据以及数据对应的分数,是根据分数排序的;
  • 获取:zrange key start end
  • 删除:zrem key value

6)通用命令

  • keys *:查询所有的键
  • type key:获取键对应的value类型
  • del key:删除指定的key value

4 Redis的持久化

Redis是内存数据库,当Redis服务器重启或者电脑重启了,数据会丢失,可以将Redis内存中的数据持久化保存在内存的文件中,当重启后,Redis会恢复数据,保证不丢失。Redis持久化的机制:

1)RDB:默认方式,不用配置,在一定的间隔时间内,检测key的变化情况来持久化数据,这种方式对性能的影响比较低,推荐使用; --编辑redis.windows.conf文件: save 900 1        // after 900 sec (15 min) if at least 1 key changed save 300 10      // after 300 sec (5 min) if at least 10 keys changed save 60 10000  // after 60 sec if at least 10000 keys changed

修改完配置文件后需要使用命令行启动服务器:redis-server.exe redis.windows.conf,现修改为save 10 5,即10s后至少有5个key发生变化,则持久化数据,可以看到生成后缀为rdb的文件,测试效果如下:

2)AOF:日志记录方式,可以记录每一条命令操作,每一次命令操作后来持久化数据,这种方式对性能影响较大;

--编辑redis.windows.conf文件:

  • appendonly no:默认为no,表示关闭AOF,改为yes开启
  • # appendfsync always:默认注释了,表示每一次操作都进行持久化;
  • appendfsync everysec:默认的,每隔一秒操作一次;
  • # appendfsync no:不持久化;

修改完配置文件后需要使用命令行启动服务器:redis-server.exe redis.windows.conf,现修改为appendonly yes,即每隔1s持久化一次,可以看到生成后缀为aof的文件,测试效果如下:

———————————————————————————————————

本文为博主原创文章,转载请注明出处!

0 人点赞