Redis学习---大数据技术之Redis(NoSQL简介、Redis简介、Redis安装、五大数据类型、相关配置、持久化)

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: Redis学习---大数据技术之Redis(NoSQL简介、Redis简介、Redis安装、五大数据类型、相关配置、持久化)

                                                                                 

                       星光下的赶路人star的个人主页

                      知世故而不世故 是善良的成熟


文章目录



1、NoSQL


1.1 NoSQL数据库


1.1.1 NoSQL是什么


1、NoSQL(Not Only SQL),意思是“不仅仅是SQL”,泛指非关系型的数据库。

2、NoSQL不拘泥于关系型数据库的设计范式,放弃了通用的技术标准,为某一领域特定场景而设计,从而使性能、容量、扩展性达到了一定程度的突破。


1.1.2 NoSQL的特点


1、不遵循SQL标准

2、不支持ACID

3、远超于SQL的性能


1.1.3 NoSQL的适用场景


1、对数据高并发的读写

2、海量数据的读写

3、对数据高可扩展的


1.1.4 NoSQL的不适场景


1、需要事务支持

2、基于sql的结构化查询储存,处理复杂的关系,需要即时查询

3、用不着sql的和·用了sql也不行的情况,清考虑用NoSQL。


1.2 NoSQL家族


1、Memcached

(1)很早出现的NoSQL数据库

(2)数据都在内存中,一般不持久化

(3)支持简单的key-value模式,数据类型支持单一

(4)一般是作为缓存数据库辅助持久化的数据库


2、Redis

(1)几乎覆盖了Memcached的绝大部分功能

(2)数据都在内存中,支持持久化,主要用作备份恢复

(3)支持丰富的数据类型(value,因为所有key都是String类型),例如string,list,set,zset,hash等


3、mongoDB

(1)高性能、开源、模式自由的文档型数据库

(2)数据都在内存中,如果内存不足,把不常用的数据保存到硬盘

(3)虽然是key-value模式,但是对value(尤其是json)提供了丰富的查询功能

(4)支持二进制数据及大型对象

(5)可以根据数据的特点替代RDBMS(关系数据库管理系统),成为独立的数据库。或者配合RDBMS,存储特定的数据


4、HBase

(1)HBase是Haddop项目的数据库,主要用于对大量数据进行随机、实时的读写操作。

(2)HBase能支持到数十亿行×百万列的数据表


5、Cassandra

(1)Cassandra用于管理由大量商用服务器构建起来的庞大集群上的海量数据集(PB级)


6、Neo4j

(1)Neo4j是基于图结构的数据库,一般用于构建社交网络、交通网络、地图等


2、Redis简介


2.1 Redis官网


1、Redis官方网站 http://Redis.io

2、Redis中文官方网站 http://www.Redis.net.cn


2.2 Redis是什么


1、Redis是一个开源的key-value储存系统。

2、它支持储存的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set)和hash(哈希类型)

3、Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件

4、支持高可用和集群模式


2.3 Redis的应用场景


2.3.1 配合关系型数据库做高速缓存


1、高频次,热门访问的数据,降低数据库IO

2、经典的Cache Aside Pattern(旁路缓存模式)


2.3.2 大数据场景


1、缓存数据

(1)需要高频次访问

(2)持久化数据访问较慢

2、临时数据

(1)高频次

(2)读写时效高

(3)总数据量不大

(4)临时性

(5)用key查询

3、计算结果

(1)高频次写入

(2)高频次查询

(3)总数据量不大

2.3.3 利用其多样的数据结构储存特定的数据


(1)最新N个数据—>通过List实现按自然事件排序的数据

(2)排行榜,TopN—>利用zset(有序集合)

(3)时效性的数据,比如手机验证码—>Expire过期

(4)计数器,秒杀—>原子性,自增方法INCR、DECR

(5)去除大量数据中的重复数据—>利用set集合

(6)构建队列—>利用list集合

(7)发布订阅消息系统—>pub/sub模式


3、Redis安装


3.1 关于Redis版本


不用考虑在Windows环境下对Redis的支持,Redis官方没有提供对Windows环境的支持,是微软的开源小组开发了对Redis对Windows的支持。


3.2 安装


1、安装新版gcc编译器

sudo yum -y install gcc-c++ 
• 1

2、上传redis-6.2.1.tar.gz安装包到/opt/software目录下

3、解压redis-6.2.1.tar.gz到/opt/module目录下

4、之后进入安装包的src目录,编辑Makefile文件,修改软件安装路径如下:

#修改如下
PREFIX?=/home/zhm
#然后执行如下命令
 make && make install


3.3 查看安装目录/home/zhm/bin


(1)Redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何(服务启动起来后执行)

(2)Redis-check-aof:修复有问题的AOF文件

(3)Redis-check-dump:修复有问题的RDB文件

(4)Redis-sentinel:启动Redis哨兵服务

(5)redis-server:Redis服务器启动命令

(6)redis-cli:客户端,操作入口


3.4 Redis的启动


1、拷贝一份redis.conf配置文件到工作目录

mkdir myredis
 cd myredis
 cp /opt/module/redis-6.2.1/redis.conf .
• 1
• 2
• 3

2、绑定主机IP,修改bind属性

vim redis.conf
 bind 0.0.0.0
• 1
• 2
• 3

3、指定配置文件进行启动

redis-server redis.conf
• 1


3.5 客户端访问


1、使用redis-cli 命令访问启动好的Redis,默认端口为6379

redis-cli 
• 1


2、如果有多个Redis客户端同时启动,或者端口做了修改,则需要指定端口号访问

redis-cli -p 6379
• 1

3、如果访问非本机的Redis,需要指定host来访问

redis-cli -h 127.0.0.1 -p 6379
• 1

4、通过ping命令测试验证

127.0.0.1:6379> ping
PONG
• 1
• 2


3.6 关闭Redis服务


如果还未通过客户端访问,可直接redis-cli shutdown

redis-cli shutdown
• 1

如果已经进入客户端,直接shutdown即可

127.0.0.1:6379> shutdown
• 1


3.7 Redis默认16个库


1、Redis默认创建16个库,每个库对应一个下标,从0开始。

通过客户端连接默认进入到0号库,推荐只使用0号库

2、使用命令select库的下标来切换数据库

127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]>
• 1
• 2
• 3

4、Redis的五大数据类型


4.1 帮助手册


http://redisdoc.com/


4.2 Redis键(key)


1、查看当前库的所有键

127.0.0.1:6379> keys *
• 1

2、判断某个键是否存在

127.0.0.1:6379> exists <key>
• 1

3、查看键对应的value的类型

127.0.0.1:6379> type <key>
• 1

4、删除某个键

127.0.0.1:6379> del <key>
• 1

5、设置过期时间

expire <key> <second>
• 1

6、查看过期时间,-1表示永不过期,-2表示已过期

ttl <key>
• 1

7、查看当前库中key的数量

dbsize
• 1

8、清空当前库

flushdb
• 1

9、清空所以库

flushall
• 1

4.3 String


4.3.1 特点


1、String是Redis最基本的类型,适合保存单值类型,即一个key对应一个value。

2、String类型是二进制安全的,意味着Redis的String可以包含任何数据。比如jpg图片或者序列化得对象。

3、一个Redis中字符串value最多可以是512M。


4.3.2 常用操作


1、添加键值对

set <key> <value>
• 1

2、获取键的值

get <key>
• 1

3、将给定的追加到原值的末尾

append <key> <value>
• 1

4、获取值的长度

strlen <key>
• 1

5、当key不存在时设置key的值

setnx <key> <value>
• 1

6、将key中储存的数据值增1

incr <key>
• 1

7、将key中储存的数字值减一

decr <key>
• 1

8、将key中储存的数字值安装指定步长增长

incrby <key> <步长>
• 1

9、将key中储存的数字值按照指定步长减

decrby <key> <步长>
• 1

10、同时添加一个或者多个key

mset <k1> <v1> <k2> <v2>
• 1

11、同时获取一个或者多个key的值

mget <k1> <k2> <k3>
• 1

12、同时添加一个或者多个key,当且仅当所有给定的key都不存在

msetnx <k1> <v1> <k2> <v2>
• 1

13、获取值的子串

getrange <key>  <start> <end>
• 1

14、从指定的开始位置覆盖旧值

setrange <key> <start> <value>
• 1

15、同时设置值和过期时间

setex <key> <seconds> <value>
• 1

16、设置新值的同时获取旧值

getset <key> <value>
• 1

4.4 List


4.4.1 特点


1、单键多值

2、Redis List是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。

3、它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会较差。

4.4.2 常用操作


1、从左边插入一个或多值

lpush <key> <element...>
• 1

2、从右边插入一个或多个值

rpush <key> <element...>
• 1

3、从左边删除一个值(值在健在,值光键亡)

lpop <key>
• 1

4、从右边删除一个值

rpop <key>
• 1

5、从key1列表右边删除一个值,插入到key2列表左边

rpoplpush <key1> <key2>
• 1

6、按照索引下标范围获取元素(从左到右)

lrange <key> <start> <stop>
• 1

7、按照索引下标获取元素(从左到右)

lindex <key> <index>
• 1

8、获取列表长度

llen <key>
• 1

9、在指定 的前面或者后面插入

llinsert <key> before|after <pivot> <element>
• 1

10、从左边删除count个指定的value

lrem <key> <count> <element>
• 1


4.5 set


4.5 1 特点


1、set中的元素是无序不重复的,当你需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择,并且set提供了判断某个成员是否在一个set集合内的重要接口。

2、Redis的Set是string类型的无序集合。它底层其实是一个value为null的hash表,所以添加,删除,查找的复杂度都是O(1)。


4.5.2 常用操作

1、将一个或者多个member元素加入到集合中,已经存在的member将被忽略

sadd <key> <member…>
• 1

2、取出集合的所有值

smemebers  <key>
• 1

3、判断集合是否包含指定的member,包含返回1,不包含返回0

sismember <key> <member>
• 1

4、返回集合的元素个数

scard <key>
• 1

5、从集合中删除指定的元素

srem <key> <member…>
• 1

6、随机从集合中删除一个值,会从集合中删除值

spop <key>
• 1

7、随机从集合中取出n个值,不会从集合中删除

srandmember <key> <count>
• 1

8、返回多个集合的交集元素

sinter <key…>
• 1

9、返回多个集合的并集元素

sunion <key…> 
• 1

10、返回多个集合的差集元素

sdiff <key…> 
• 1


4.6 Hash

4.6.1 特点


1、Redis hash是一个键值对集合

2、Redis hash的值是由多个field和value组成的映射表

3、类似Java里面的Map<String,String>


4.6.2 分析一个问题: 现有一个User 对象,在Redis中如何存?


1、第一种方案: 用户ID为key ,VALUE为JavaBean序列化后的字符


2、第二种方案: 用户ID+属性名作为key, 属性值作为Value.

3、第三种方案: 通过 key(用户ID) + field(属性标签) 就可以操作对应属性数据了,既不需要重复存储数据,也不会带来序列化和并发修改控制的问题

4.6.3 常用操作


1、给集合中添加指定的 -

hset <key>  [<field> <value> …]
• 1

2、给集合中添加指定的 - ,当指定的field不存在时

hsetnx <key> <field> <value>
• 1

3、取出集合中指定field的value

hget <key> <field> 
• 1

4、判断集合中是否存在指定的field

hexists <key> <field> 
• 1

5、列出集合中所有的field

hkeys <key> 
• 1

6、列出集合中所有的value

hvals <key> 
• 1

7、给集合中指定filed的value值增加increment

hincrby  <key> <field> <increment> 
• 1

4.7 zset


4.7.1 特点


1、Redis有序集合zset与普通集合set非常相似,是一个没有重复元素的字符串集合。不同之处是有序集合的每个成员都关联了一个评分(score) ,这个评分(score)被用来按照从最低分到最高分的方式排序集合中的成员。集合的成员是唯一的,但是评分可以是重复了 。

2、因为元素是有序的, 所以你也可以很快的根据评分(score)或者次序(position)来获取一个范围的元素。访问有序集合的中间元素也是非常快的,因此你能够使用有序集合作为一个没有重复成员的智能列表。


4.7.2 常用操作


1、往集合中添加指定的 member 及score

zadd <key> [<score> <member> … ]
• 1

2、从集合中取出指定下标范围的数据,正序取

zrange <key> <start> <stop> [WITHSCORES] 
• 1

3、从集合中取出指定下标范围的数据,倒序取

zrevrange <key> <start> <stop> [WITHSCORES] 
• 1

4、从集合中取出指定score范围的数据,默认从小到大

zrangebyscore <key> <min> <max> [WITHSCORES]
• 1

5、从集合中取出指定score范围的数据,从大到小

zrevrangebyscore  <key>  <max> <min> [WITHSCORES]
• 1

6、给集合中指定member的score增加increment

zincrby <key> <increment> <member>
• 1

7、删除集合中指定的member

zrem <key> <member…>
• 1

8、统计指定score范围的元素个数

zcount <key> <min> <max>
• 1

9、返回集合中指定member的排名,排名从0开始

zrank   <key>  <member>
• 1

5、Redis的相关配置


1、计量单位说明,大小写不敏感

# 1k => 1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb => 1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024 bytes
#
# units are case insensitive so 1GB 1Gb 1gB are all the same.

2、bind

默认情况bind=127.0.0.1只能接受本机的访问请求

不写的情况下,无限制接受任何ip地址的访问,产环境肯定要写你应用服务器的地址

如果开启了protected-mode,那么在没有设定bind ip且没有设密码的情况下,Redis只允许接受本机的请求

#bind 127.0.0.1
protected-mode no
• 1
• 2

3、port服务端口号

port 6379
• 1

4、damonize

是否为后台进程

port 6379
• 1

5、pidfile

存放pid文件的位置,每个实例会产生一个不同的pid文件

pidfile /var/run/redis_6379.pid
• 1

6、log file

日志文件存储位置

logfile ""
• 1

7、Database

设定库的数量默认16

databases 16
• 1

8、requirepass

设置密码

requirepass 123456
127.0.0.1:6379> set k1 v1
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth "123456"
OK
127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> get k1 
"v1"

9、maxmemory

设置Redis可以使用的内存量。一 旦到达内存使用上限,Redis将会试图移除内部数据,移除规则可以通过maxmemory-policy来指定。如果Redis无法根据移除规则来移除内存中的数据,或者设置了“不允许移除”,

那么Redis则会针对那些需要申请内存的指令返回错误信息,比如SET、LPUSH等。

# maxmemory <bytes>

10、maxmemory-policy

移除策略

# maxmemory-policy noeviction 
#volatile-lru:使用LRU算法移除key,只对设置了过期时间的键
#allkeys-lru:使用LRU算法移除key
#volatile-lfu :使用LFU策略移除key,只对设置了过期时间的键.
#allkeys-lfu  :使用LFU策略移除key
#volatile-random:在过期集合中移除随机的key,只对设置了过期时间的键
#allkeys-random:移除随机的key
#volatile-ttl:移除那些TTL值最小的key,即那些最近要过期的key
#noeviction:不进行移除。针对写操作,只是返回错误信息

11、Maxmemory-samples

设置样本数量,LRU算法和最小TTL算法都并非是精确的算法,而是估算值,所以你可以设置样本的大小。一般设置3到7的数字,数值越小样本越不准确,但是性能消耗也越小

# maxmemory-samples 5
• 1

6、Jedis


Jedis是Redis的Java客户端,可以通过Java代码的方式操作Redis


6.1 环境准备

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>3.3.0</version>
</dependency>


6.2 基本测试


1、测试连通

public class JedisTest {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("hadoop102",6379);
        String ping = jedis.ping();
        System.out.println(ping);
    }
}

2、连接池

连接池主要用来节省每次连接redis服务带来的连接消耗,将连接好的实例反复利用

public static JedisPool pool =  null ;
public static Jedis getJedis(){
    if(pool == null ){
        //主要配置
        JedisPoolConfig jedisPoolConfig =new JedisPoolConfig();
        jedisPoolConfig.setMaxTotal(10); //最大可用连接数
        jedisPoolConfig.setMaxIdle(5); //最大闲置连接数
        jedisPoolConfig.setMinIdle(5); //最小闲置连接数
        jedisPoolConfig.setBlockWhenExhausted(true); //连接耗尽是否等待
        jedisPoolConfig.setMaxWaitMillis(2000); //等待时间
        jedisPoolConfig.setTestOnBorrow(true); //取连接的时候进行一下测试 ping pong
        pool = new JedisPool(jedisPoolConfig,"hadoop102",6379) ;
    }
    return pool.getResource();
}   
 public static void main(String[] args) {
        //Jedis jedis = new Jedis("hadoop202",6379);
        Jedis jedis = getJedis();
        String ping = jedis.ping();
        System.out.println(ping);
 }


7、Redis持久化


7.1 两种方式


Redis提供了两个不同形式的持久化方式RDB和AOF。

RDB为快照备份,会在备份时将内容中的所有数据持久化到磁盘的一个文件中。

AOF为日志备份,会将所有写操作命令记录在一个日志文件中。


7.2 RDB(Redis DataBase)


7.2.1 RDB是什么


在指定的时间间隔将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,

它恢复时是将快照文件直接读到内存里。


7.2.2 如何执行持久化


Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行然后IO操作的,这就确保了极高的性能如果需要进行大规模数据的恢复,且对数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺点是最后一次持久化的数据可能丢失。


7.2.3 RDB文件


1、RDB保存的文件

在redis.conf中配置文件名称,默认为dump.rdb

2、RDB文件的保存路径

默认为Redis启动时命令行所在的目录下,也可以修改


7.2.4 RDB保存策略


#   save <seconds> <changes>
#   Will save the DB if both the given number of seconds and the given
#   number of write operations against the DB occurred.
#
#   In the example below the behaviour will be to save:
#   after 900 sec (15 min) if at least 1 key changed
#   after 300 sec (5 min) if at least 10 keys changed
#   after 60 sec if at least 10000 keys changed
#   Note: you can disable saving completely by commenting out all "save" lines.
save 900 1
save 300 10
save 60 10000

7.2.5 手动保存

1、save: 只管保存,其它不管,全部阻塞

2、bgsave:按照保存策略自动保存

3、shutdown时服务会立刻执行备份后再关闭

4、flushall时会将清空后的数据备份


7.2.6 RDB备份恢复

1、备份

将dump.rdb文件拷贝到要备份的位置

2、恢复

关闭Redis,把备份的文件拷贝到工作目录下,启动redis,备份数据会直接加载。


7.2.7 RDB其他配置

1、进行rdb保存时,将文件压缩

rdbcompression yes
• 1

2、文件校验

在存储快照后,还可以让Redis使用CRC64算法来进行数据校验,但是这样做会增加大约10%的性能消耗,如果希望获取到最大的性能提升,可以关闭此功能

rdbchecksum yes
• 1


7.2.8 RDB优缺点


1、优点

节省磁盘空间,恢复速度快.

2、缺点

虽然Redis在fork时使用了写时拷贝技术,但是如果数据庞大时还是比较消耗性能。在备份周期在一定间隔时间做一次备份,所以如果Redis意外down掉的话,就会丢失最后一次快照后的所有修改


7.3 AOF(Append Only File)

7.3.1 AOF是什么

以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,Redis启动之初会读取该文件重新构建数据,换言之,Redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。

7.3.2 开启AOF

1、AOF默认不开启,需要手动在配置文件中配置

appendonly no
• 1

2、AOF文件

appendfilename "appendonly.aof"
• 1

3、AOF文件保存的位置与RDB的路径一致

dir ./
• 1


7.3.3 AOF同步频率


# no: don't fsync, just let the OS flush the data when it wants. Faster.
# always: fsync after every write to the append only log. Slow, Safest.
# everysec: fsync only one time every second. Compromise.


7.3.4 AOF文件损坏恢复

redis-check-aof  --fix  appendonly.aof  
• 1

7.3.5 AOF备份


AOF的备份机制和性能虽然和RDB不同, 但是备份和恢复的操作同RDB一样,都是拷贝备份文件,需要恢复时再拷贝到Redis工作目录下,启动系统即加载


7.3.6 Rewrite

AOF采用文件追加方式,文件会越来越大为避免出现此种情况,新增了重写机制,当AOF文件的大小超过所设定的阈值时,Redis就会启动AOF文件的重写,只保留可以恢复数据的最小指令集.可以使用命令bgrewriteaof手动开始重写。

重写虽然可以节约大量磁盘空间,减少恢复时间。但是每次重写还是有一定的负担的,因此设定Redis要满足一定条件才会进行重写。

系统载入时或者上次重写完毕时,Redis会记录此时AOF大小,设为base_size,如果Redis的AOF当前大小>= base_size +base_size*100% (默认)且当前大小>=64mb(默认)的情况下,Redis会对AOF进行重写。

auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
• 1
• 2

7.3.7 AOF的优缺点


1、优点:

(1)备份机制更稳健,丢失数据概率更低。

(2)可读的日志文本,通过操作AOF文件,可以处理误操作。

2、缺点:

(1)比起RDB占用更多的磁盘空间

(2)恢复备份速度要慢

(3)每次写都同步的话,有一定的性能压力

(4)存在个别bug,造成恢复不能


7.4 持久化的优先级


AOF的优先级大于RDB,如果同时开启了AOF和RDB,Redis服务启动时恢复数据以AOF为准.


7.5 RDB和AOF用哪个号


1、官方推荐两个都启用。

2、如果对数据不敏感,可以选单独用RDB

3、不建议单独用 AOF,因为可能会出现Bug。

4、如果只是做纯内存缓存,可以都不用                                                                                      

                                                                        您的支持是我创作的无限动力

                                                                                     

                      希望我能为您的未来尽绵薄之力

                                                                                     

                    如有错误,谢谢指正若有收获,谢谢赞美

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
1月前
|
存储 监控 NoSQL
Redis HyperLogLog: 高效统计大数据集的神秘利器
Redis HyperLogLog: 高效统计大数据集的神秘利器
|
2月前
|
NoSQL Java Redis
Springboot从2.x升级到3.x以后redis默认配置调整
Springboot从2.x升级到3.x以后redis默认配置调整
54 0
|
2月前
|
NoSQL Linux Redis
Linux系统中安装redis+redis后台启动+常见相关配置
Linux系统中安装redis+redis后台启动+常见相关配置
|
6天前
|
消息中间件 分布式计算 大数据
大数据组件之storm简介
大数据组件之storm简介
23 2
|
12天前
|
监控 大数据 数据处理
大数据组件之Storm简介
【5月更文挑战第2天】Apache Storm是用于实时大数据处理的分布式系统,提供容错和高可用的实时计算。核心概念包括Topology(由Spouts和Bolts构成的DAG)、Spouts(数据源)和Bolts(数据处理器)。Storm通过acker机制确保数据完整性。常见问题包括数据丢失、性能瓶颈和容错理解不足。避免这些问题的方法包括深入学习架构、监控日志、性能调优和编写健壮逻辑。示例展示了实现单词计数的简单Topology。进阶话题涵盖数据延迟、倾斜的处理,以及Trident状态管理和高级实践,强调调试、性能优化和数据安全性。
23 4
|
15天前
|
存储 分布式计算 DataWorks
MaxCompute产品使用合集之大数据计算MaxCompute dataworks可以批量修改数据集成任务的数据源配置信息吗
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
15天前
|
分布式计算 大数据 数据处理
MaxCompute操作报错合集之在开发环境中配置MaxCompute参数进行调度,但参数解析不出来,如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
15天前
|
SQL 分布式计算 大数据
MaxCompute操作报错合集之spark3.1.1通过resource目录下的conf文件配置,报错如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
15天前
|
分布式计算 DataWorks 大数据
MaxCompute操作报错合集之在使用 MaxCompute 的 MMA(Multi-Modal Analytics)进行跨 Region 数据迁移时,在配置数据源时遇到错误,如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
25天前
|
NoSQL MongoDB Redis
Python与NoSQL数据库(MongoDB、Redis等)面试问答
【4月更文挑战第16天】本文探讨了Python与NoSQL数据库(如MongoDB、Redis)在面试中的常见问题,包括连接与操作数据库、错误处理、高级特性和缓存策略。重点介绍了使用`pymongo`和`redis`库进行CRUD操作、异常捕获以及数据一致性管理。通过理解这些问题、易错点及避免策略,并结合代码示例,开发者能在面试中展现其技术实力和实践经验。
315 8
Python与NoSQL数据库(MongoDB、Redis等)面试问答