Redis基本本应用(集群)
Redis学习(DAY3)持久化我们知道Redis是保存在内存中的,因为内存的特性,在机器断电之后,数据会消失,所以我们需要持久化,将数据备份到磁盘上。
两种方案:1、保存当前已经存储的数据;2、保存我们存放数据的所有过程
RDB
就是第一种方式
1234save-- 注意上面这个命令是直接保存,会占用一定的时间,也可以单独开一个子进程后台执行保存bgsave-- 后台执行
执行之后会生成一个dump.rdb文件,当重启服务器后,会自动加载内容到对应的数据库中
方便 如果数据库数据量较大,会花费大量的时间,我们可以每隔一段时间进行保存
12save 300 10 # 300秒(5分钟)内有10个写入save 60 10000 # 60秒(1分钟)内有10000个写入
AOF
以日志的方式将我们每次执行的命令都进行保存,服务器重启时按照命令依次执行。
我们可以自己来配置保存策略:
always:每次执行写操作都会保存一次
everysec:每秒保存一次(默认配置),这样就算丢失数据也只会丢一秒以内的数据
no:看系统心情保存
123456# 注意得改成也是appendonly ...
Redis基本本应用(全局唯一,互斥锁,分布式锁)
Redis基本应用(全局唯一,互斥锁,分布式锁)优惠券秒杀业务全局唯一ID每个店铺都可以发布优惠券,当用户抢购时,就会生成订单并保存到tb_voucher_order这个表里,而只使用数据库自增ID就存在一些问题:
id规律性太明显
受单表数据量的限制
假设:随着业务不断扩大,mysql单表容量不得超过500w,数据量过大之后,我们要进行拆库拆表,但是拆表之后,他们从逻辑上来说是同一张表,所以他们的id是不能一样的(mysql的ID是自增的)我们要保证id的唯一性
全局ID生成器(是否能用雪花算法呢?)
需要我们满足:唯一性,高可用,高性能,递增性,安全性
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253package com.hmdp.utils;import org.springframework.data.redis.core.StringRedisTemplate;import javax.annotation.Resource ...
在调试过程中报了个javavm错误
在调试过程中报了个javavm错误
解决方法
在-ea后加上-Xshare:off
Redis语法以及一些基本应用
Redis语法以及一些基本应用Resids数据结构
常用命令:
KEYS:查看符合模板的所有key
DEL: 删除一个key
EXISTS:判断key是否存在
EXPIRE:给一个key设置有效时长
TTL:这个key剩余时长
String类型
常见的有:
SET
GET
MSET:批量添加
MGET:更加多个key获取多个String类型的value
INCR:让一个整型的key自增1
INCRBY:让一个整型的key自增并指定步长,incrby num 2 就是让num增加2
INCRBYFLOAT:让一个浮点类型的数字自增并指定步长
SETNX:添加一个String类型的键值对,前提是这个key不存在
SETEX:添加一个String类型的键值对,并且制定有效期
Redis没有Table的概念,如何区分不同类型的key?
允许有多个单词形成层级结构,多个单词之间用“:”隔开
项目名:业务名:类型:id
HASH类型
hashmap结构 value是一个无序字典
String结构是将对象序列化为JSON字符串后存储,当我们需要修改的时候很不方便,所以我们用hash类型来 ...
Rust随手记
Rust随手记基本数据类型-原生类型
元组(tuple)
允许各个元素类型不相同
123fn main(){ let tup: (i32,f64,u8) = (500,6.4,1);}
字符串
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677// quiz2.rs//// This is a quiz for the following sections:// - Strings// - Vecs// - Move semantics// - Modules// - Enums//// Let's build a little machine in the form of a function. As input, we're going// to give a list of string ...
JavaFX
JavaFXApplication 类这是主启动类,是必修实现的javafx.application.Application 抽象类。
1234567891011121314public class HelloApplication extends Application { @Override public void start(Stage stage) throws IOException { FXMLLoader fxmlLoader = new FXMLLoader(HelloApplication.class.getResource("hello-view.fxml")); Scene scene = new Scene(fxmlLoader.load(), 320, 240); stage.setTitle("Hello!"); stage.setScene(scene); stage.show(); } pub ...