zxpnet网站 zxpnet网站
首页
前端
后端服务器
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

zxpnet

一个爱学习的java开发攻城狮
首页
前端
后端服务器
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 大后端课程视频归档
  • 南航面试题
  • 并发编程

  • 性能调优

  • java8语法

  • lombok

  • 日志

  • 工具类

  • spring

  • mybatis

  • springboot

  • redis

    • redis6基础
      • redis6安装
        • 1、安装编译所需环境gcc
        • 2、安装
        • 3、启动
        • 设置开机启动
      • redis配置文件
      • redis常用命令
      • redis的java客户端
      • redis的事务
      • redis八大类型的应用场景
        • String
        • hash
        • list
        • set
        • zset
      • redis发布和订阅
    • redis分布式锁
    • 高级Redis6应用进阶课 一站式Redis解决方案
    • redis面试题
  • zookeeper

  • springcloud

  • dubbo

  • netty

  • springsecurity

  • mq消息中间件

  • shiro

  • beetle

  • 模板引擎

  • jpa

  • 数据结构与算法

  • 数据库知识与设计

  • gradle

  • maven

  • bus

  • 定时任务

  • docker

  • centos

  • 加解密

  • biz业务

  • pigx项目

  • 开源项目

  • 品达通用权限项目-黑马

  • 货币交易项目coin-尚学堂

  • php

  • backend
  • redis
shollin
2021-07-19
目录

redis6基础

  • redis6安装
    • 1、安装编译所需环境gcc
    • 2、安装
    • 3、启动
    • 设置开机启动
  • redis配置文件
  • redis常用命令
  • redis的java客户端
  • redis的事务
  • redis八大类型的应用场景
    • String
    • hash
    • list
    • set
    • zset
  • redis发布和订阅

# redis6安装

可以用docker安装,也可以下载源码进行编译安装,先演示编译安装

# 1、安装编译所需环境gcc

# 确认gcc是否已安装及版本
gcc -v

# 安装gcc依赖
yum install gcc-c++ autoconf automake -y

# CentOS7默认安装的是4.8.5,而redis6.0只支持5.3以上版本,这里将gcc升级到9
yum install -y centos-release-scl scl-utils-build devtoolset-9-toolchain devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils

# 永久切换gcc版本
echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile

# 临时切换gcc版本
scl enable devtoolset-9 bash

# 查看gcc版本
gcc -v
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 2、安装

wget -P /usr/local/src https://download.redis.io/releases/redis-6.2.5.tar.gz
tar -zxvf redis-6.2.5.tar.gz 
cd redis-6.2.5

# 编译, 指定内存分配器为libc, 默认为jemalloc
make

# 安装,指定安装目录
make install PREFIX=/usr/local/redis

# 确认是否安装成功
cd /usr/local/redis/bin

#拷贝配置文件到bin下
cp /mnt/app/redis-6.2.5/redis.conf /usr/local/redis/bin

# 配置全局可以使用Redis命令
cp redis-cli /usr/bin/redis-cli

cp redis-server /usr/bin/redis-server

# 确认是否可以使用全局变量
redis-cli
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

image-20210827225939924

参考文章 :

Centos7中搭建Redis6集群操作步骤 - 张冠胜 - 博客园 (cnblogs.com) (opens new window)

# 3、启动

修改redis.conf ,修改前先备份一下 cp redis.conf redis.conf.bak 修改redis.conf(128行)文件将里面的daemonize no 改成 yes,让服务在后台启动

redis-server -v  #查看版本
redis-server /mnt/app/redis-6.2.5/redis.conf  或者 redis-server redis.conf
redis-cli
> info   #查看信息,里面包含版本
firewall-cmd --zone=public --add-port=6379/tcp --permanent 
1
2
3
4
5

# 设置开机启动

1、在系统服务目录里创建redis.service文件

vim /etc/systemd/system/redis.service
1

2、写脚本

[Unit]
Description=redis-server
After=network.target
 
[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target
1
2
3
4
5
6
7
8
9
10
11

3、重启系统服务

systemctl daemon-reload  #重启系统服务
systemctl start redis.service #启动redis服务
systemctl enable redis.service #设置开机自启动
systemctl disable redis.service #停止开机自启动
systemctl status redis.service #查看服务当前状态
systemctl restart redis.service  #重新启动服务
systemctl list-units --type=service #查看所有已启动的服务
1
2
3
4
5
6
7

参考文章 :redis设置开机自启_城下cx的博客-CSDN博客_redis开机自启动 (opens new window)

# redis配置文件

Redis配置文件详解 - 吹静静 - 博客园 (cnblogs.com) (opens new window)

主要有设置后台运行(daemonize yes)、放行所有ip(bind 0.0.0.0)、设置访问密码()、最大内存、数据保存位置、持久化方式

# redis常用命令

redis-cli -a 123456 -p 6379 -h 192.168.56.160

keys * 
info cpu
flushall  清除所有数据
1
2
3
4
5

redis常用命令 - 道高一尺 - 博客园 (cnblogs.com) (opens new window)

# redis的java客户端

jedis、Redisson和lettuce(springboot默认)

redis三个连接客户端框架的选择:Jedis,Redisson,Lettuce_弹指天下-CSDN博客_redisson和lettuce (opens new window)

# redis的事务

redis事务提供了一种“将多个命令打包, 然后一次性、按顺序地执行”的机制, 并且事务在执行的期间不会主动中断 —— 服务器在执行完事务中的所有命令之后, 才会继续处理其他客户端的其他命令。multi开始组队,exec执行里面队列,discard回滚.

  • 组队中某个命令出现了报告错误,exec执行时整个的所有队列都会被取消。
  • exec时某个命令报出了错误,则只有报错的命令不会被执行,而其他的命令都会执行,不会回滚

image-20210720003148633

image-20210720003259010

# redis八大类型的应用场景

String、hash、List、Set、ZSet、Bitmap、Geo、HyperLoglogs(统计 )

redis命令不区分大小写,key区分大小写

help @list 查看list类型有哪些命令

# String

分布式锁、统计阅读数

setnx key 1
set key uuid nx ex 10  #

incr article:001 #阅读001文章加1,递增加1
1
2
3
4

# hash

对应的java结构: Map<String,Map<Object,Object>>

购物车

hset cart:uid01 goods001 1 #添加商品到用户01的购物车
hset cart:uid01 goods002 1 goods003 2
hincrby cart:uid01 goods001 3 #增加001商品的数量,增加3


hgetall cart:uid01 #得到用户01的购物车里面的所有商品及购买数量
hlen cart:uid01  # 得到购物车里面的商品数量, 商品为key
1
2
3
4
5
6
7

# list

我喜欢的文章

lpush liks:uid001 1 2 3  #我喜欢的文章:1,2,3
llen liks:uid001 #我喜欢的文章数量
lrange liks:uid001 0 2   #列出我喜欢的文章,从0到2,即三篇,相当于分页
1
2
3

# set

抽奖活动、社交关系查找(共同关注 sinter、推荐关注 sdiff、)

sadd chouj:1001 1 2 3 4 5 6 7 8 9   #9个人来参加抽奖
scard chouj:1001  #返回集合的数量
smembers chouj:1001  #返回集合的成员
srandmember chouj:1001 2 #随机抽两个,这里不会从集合中移出
spop chouj:1001 3  #随机抽3个,这里会从集合中移出
srem chouj:1001 9  #移出9成员
sismember chouj:1001 9 #查询9是否在集合中
sinter chouj:1001 chouj:1002 #同时参加1001抽奖活动和1002抽奖活动的人

1
2
3
4
5
6
7
8
9

# zset

电影影院排名、排行榜

zadd paiming 100 mov1 200 mov2 #mov1分数为100,mov2分数为200,
zincrby paiming 20 mov1 #mov1增加20销量
zscore paiming mov1  #查看mov1的销量
zadd paiming 300 mov3 #添加mov3的销量,一批黑马来了
zrange paiming 1 2 withscores #显示有序集下标区间 1 至 2 的成员,下标从0开始,即排名第2,3的成员
zrevrange paiming 0 0 withscores  #倒序排名
1
2
3
4
5
6

参考文档

Centos7下Redis6安装_jianghuchuang的博客-CSDN博客 (opens new window)

Redis 命令参考 — Redis 命令参考 (redisfans.com) (opens new window)

redis中文官方网站 (opens new window)

# redis发布和订阅

RedisMessageListenerContainer

/**
	 * redis 监听配置,监听 mp_redis_reload_topic,重新加载配置
	 * @param redisConnectionFactory redis 配置
	 * @return
	 */
	@Bean
	public RedisMessageListenerContainer redisContainer(RedisConnectionFactory redisConnectionFactory) {
		RedisMessageListenerContainer container = new RedisMessageListenerContainer();
		container.setConnectionFactory(redisConnectionFactory);
		container.addMessageListener((message, bytes) -> {
			log.warn("接收到重新加载公众号配置事件");
			initServices();
		}, new ChannelTopic(CacheConstants.MP_REDIS_RELOAD_TOPIC));
		return container;
	}

// 触发消息
redisTemplate.convertAndSend(CacheConstants.MP_REDIS_RELOAD_TOPIC, "重新加载公众号配置");	
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

参考视频:

【No1383】最新Redis高级进阶实战视频教程-百度网盘下载-Java学习者论坛(javaxxz.com) (opens new window)

1、Redis最新版全面精讲_一站式Redis解决方案-慕课网 (imooc.com) (opens new window)

SpringBoot面试题
redis分布式锁

← SpringBoot面试题 redis分布式锁→

最近更新
01
国际象棋
09-15
02
成语
09-15
03
自然拼读
09-15
更多文章>
Theme by Vdoing | Copyright © 2019-2023 zxpnet | 粤ICP备14079330号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式