一. Redis 数据库介绍
redis 是一个开源的、使用 C 语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value 数据库。redis 数据结构:redis 是一种高级的 key:value 存储系统,其中value 支持五种数据类型:
1. 字符串(Strings)
2. 字符串列表(lists)
3. 字符串集合(sets)
4. 有序字符串集合(sorted sets)
5. 哈希(hashes)
而关于 key, key 不要太长,尽量不要超过 1024 字节,这不仅消耗内存,而且会降低查找的效率;key 也不要太短,太短的话,key 的可读性会降低。
二.Redis 适用场景:
1.缓存——热数据:热点数据(经常会被查询,但是不经常被修改或者删除的数据),首选是使用redis 缓存。
2.计数器:诸如统计点击数等应用。由于单线程,可以避免并发问题,保证不会出错,而且 100%毫秒级性能!
3.排行榜:谁得分高谁排名往上。命令:ZADD(有续集,sorted set)
4.最新列表:例如新闻列表最新页面,总数量很大的情况下,尝试 redis 的 LPUSH 命令构建List,一个个顺序都塞进去就可以。
5.分布式锁与单线程机制:秒杀系统,基于 redis 是单线程特征,防止出现数据库“爆破”
6.位操作(大数据处理):用于数据量上亿的场景下,例如几亿用户系统的签到,
去重登录次数统计,某用户是否在线等等。
7.队列:由于 redis 把数据添加到队列是返回添加元素在队列的第几位,所以可以做判断用户是第几个访问这种业务。
三.Redis 数据库的安装
1.安装 redis 编译的 c 环境:yum install gcc-c++
2.上传 redis-3.0.0.tar.gz 到 linux 系统;
GitHub下载地址:https://github.com/MicrosoftArchive/redis/releases
3.解压到/usr/local 下 tar zxvf redis-3.0.0.tar.gz -C/usr/local;
4. 进入 redis-3.0.0 目录下,使用 make 命令编译 redis。(注意大写 PREFIX)
5. 在 redis-3.0.0 目录中 使用 make PREFIX=/usr/local/redis install 命令安装redis 到/usr/local/redis 中 目录;
6. 拷贝 redis-3.0.0 中的 redis.conf 到安装目录 redis 中;
进入源码目录,里面有一份配置文件 redis.conf,
cd /usr/local/redis 然后将其拷贝到安装路径下:
cp /usr/local/redis-3.0.0/redis.conf /usr/local/redis/bin
redis.conf 是 redis 的配置文件,redis.conf 在 redis 源码目录。
注意 port 作为 redis 进程的端口,port 默认 6379。
7. 前端模式下启动 redis: 在 bin 下执行命令 redis-server;
直接运行 bin/redis-server 将以前端模式启动,前端模式启动的缺点是 ssh 命令窗口关闭则redis-server 程序结束,不推荐使用此方法。推荐后端模式的启动!
8. 后端模式启动:修改 redis.conf 文件,daemonize 把 no 改为 yes 后端模式启动。
**修改权限 chmod 777 redis.conf (chomd777,每个人都有读写和执行的权限,root 账号登录的不需要此操作!) **
vi /usr/local/redis/bin/redis.conf
/daemonize (搜索内容,相当于 window 的 Ctrl+f),按回车键后,点击 n 查找下一个
保存后退出 :wq
**启动redis:**cd /usr/local/redis/bin
./redis-server redis.conf
查看是否启动:ps –aux | grep redis
9.打开虚拟机中的防火墙对应的端口:6379;先关闭防火墙:service iptables stop (临时关闭)chkconfig iptables off(永久关闭)
编辑iptables,增加 6379 端口 **(做法跟添加mysql,tomcat 的端口号相似!) **
vi /etc/sysconfig/iptables
启动防火墙: service iptables start;
10.关闭 redis:
使用./redis-cli shutdown,redis 会先保存好数据,再关闭;
. Kill -9 暴力关闭,可能会丢失数据。
在后台启动完 redis-server,启动./redis-cli,就可以获取到 get key1 的内容了,redis 服务器就永远的启动了。
11.Java 操作 Redis 数据库:(引入 2 个 jar 包)
pom包引用
<!--jedis是Redis官方推荐的java连接开发工具-->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.6.0</version>
</dependency>
<!--对象池化组件-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.4.2</version>
</dependency>
测试类
package com.hn.yuan;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import redis.clients.jedis.Jedis;
@SpringBootTest
class VueDemoApplicationTests {
@Test
public void testRedis(){
Jedis jedis=new Jedis("****",6379); //ip 如果是本地ip,命令cmd打开输入ipconfig查看
jedis.set("admin","张三");
System.out.println(jedis.get("admin"));
}
}
效果图
12.Redis 的数据类型:字符串;
13.Redis 的数据类型:哈希 hash;
14.Redis 的数据类型:list 链表;
15.Redis 的数据类型:set(不充许重复元素);
适用场景:跟踪用户购买了哪些商品信息,求并集等。
16.Redis 的数据类型:sortedset;
适用场景:积分排名表,排行榜等。
相关操作
虚拟机安装链接:https://blog.youkuaiyun.com/SoulNone/article/details/126681722
redis本地安装及基础操作链接:https://blog.youkuaiyun.com/SoulNone/article/details/126681910
虚拟机安装及实操应用链接:https://blog.youkuaiyun.com/SoulNone/article/details/126682248
各位看官》创作不易,点个赞!!!
诸君共勉:万事开头难,只愿肯放弃。
免责声明:本文章仅用于学习参考