데이터 베이스 Redis Redis 심층 분석

Redis 심층 분석

Feb 08, 2021 pm 05:39 PM
redis

Redis 심층 분석

권장(무료): redis

1 Redis 소개

Redis란 무엇입니까
Redis는 완전히 오픈 소스이며 무료이며 BSD 프로토콜을 준수하며 성능(NOSQL)입니다. ) 키-값 데이터베이스 . Redis는 ANSI C 언어로 작성된 오픈소스 로그형 Key-Value 데이터베이스로, 네트워크를 지원하고, 메모리 기반 및 영속성이 가능하며, 다국어로 API를 제공합니다.

BSD是“Berkeley Software Distribution”的缩写,意思是“伯克利软件发⾏版”。
BSD开源协议是⼀个给与使⽤者很⼤⾃由的协议。可以⾃由的使⽤,修改源代码,也可以将修改后的代码作
为开源或者专有软件再发布。
BSD由于允许使⽤者修改或者重新发布代码,也允许使⽤或在BSD代码上开发商业软件发布和销售,因此是
对商业集成很友好的协议。
Linux:Ubuntu Redhat Centos
로그인 후 복사

Nosql :

Nosql, 泛指⾮关系型数据库,Nosql即Not-only SQL,他作为关系型数据库的良好补充。随着互联⽹的
兴起,⾮关系型数据库现在成为了⼀个极其热⻔的新领域,⾮关系型数据库产品的发展⾮常迅速
로그인 후 복사

2 Redis 설치

2.1 설치 전 준비

Redis 공식 홈페이지 : http://redis.io 공식 홈페이지 : http://redis.io : //redis .cn

공식 홈페이지 다운로드: http://redis.io/download



Redis 설치

Linux Redis는 C 언어로 개발되었으며, Redis를 설치하려면 먼저 공식 홈페이지에서 소스 코드를 다운로드해야 합니다. 컴파일, 컴파일은 GCC 환경에 따라 다릅니다. GCC 환경이 없으면 GCC

$ wget http://download.redis.io/releases/redis-5.0.5.tar.gz
$ tar xzf redis-5.0.5.tar.gz
$ cd redis-5.0.5$ make
로그인 후 복사

Windows


직접 압축을 풀어야 합니다Redis 심층 분석 Redis 설치 디렉터리를 환경 변수에 추가하는 것이 좋습니다


2.2 Redis 시작

Linux Redis 서버 시작

해당 설치 디렉터리 입력

cd /usr/local/redis
로그인 후 복사
명령 실행

./bin/redis-server
로그인 후 복사

Redis 심층 분석Linux Redis 클라이언트 시작

./bin/redis-cli
로그인 후 복사
Windows Redis 서버를 시작하세요

해당 설치 항목 입력 ⽬로그, 명령 창 열기 ⼝ 명령 실행

redis-server redis.window.conf
로그인 후 복사


Redis 심층 분석 Windows에서 Redis 클라이언트 시작

해당 설치 디렉터리 입력, 명령 창 열기 ⼝ 명령 실행

redis-cli
로그인 후 복사

클라이언트가 성공적으로 시작된 후 그림:


Redis 심층 분석3 Redis 코어 구성 파일 Redis.conf

*1. Redis 默认不是以守护进程的⽅式运⾏,可以通过该配置项修改,使⽤yes启动守护进程
 daemonize no2. 当客户端闲置多⻓时间后关闭连接(单位是秒)
 timeout 300*3. 指定Redis监听端⼝,默认端⼝为6379,作者在⼀⽚博⽂中解释了为什么选⽤6379作为默认端⼝,因
为6379在⼿机按键上MERZ对应的号码,⽽MERZ取⾃意⼤利歌⼿Alessia Merz的名字
 port 6379*4. 绑定的主机地址
 bind 127.0.0.1
 5. 指定⽇志记录级别,Redis共⽀持四个级别:debug、verbose、notice、warning
 loglevel verbose6. 数据库数量(单机环境下),默认数据库为0,可以使⽤select <dbid>命令在连接上指定数据库id
 databases 16// ⾮常重要*7. RDB 持久化策略,指定在多⻓时间内,有多少次更新操作,就将数据同步到数据⽂件,可以多个条件
配合
 save <seconds> <changes>
 Redis默认配置⽂件提供了三个条件
 save 900 1
 save 300 10
 save 60 100008. 持久化⽂件名
 dbfilename dump.rdb*9. 指定存储⾄本地数据库时是否压缩数据,默认为yes,Redis采⽤LZF(压缩算法)压缩,如果为了节
省CPU时间,可以关闭该选项,但会导致数据库⽂件变得巨⼤
 rdbcompression yes*10. 设置Redis连接密码,如果配置了连接密码,客户端在连接Redis的时候需要通过 AUTH<password> 命令提供密码,默认关闭
 requirepass foobared// AOF 配置*11. 指定是否在每次操作后进⾏⽇志记录,Redis在默认情况下是关闭的
 appendonly no*12. AOF⽂件的名字
 appendfilename "appendonly.aof"*13. aof策略,分为三种,always表示每次操作都会记录⽇志,everysec表示每秒记录⼀次⽇志,no表
示不记录⽇志
 # appendfsync always
 appendfsync everysec
 # appendfsync no</password></changes></seconds></dbid>
로그인 후 복사
Redis 지속성 요약:

RDB: Redis의 기본 지속성 메커니즘입니다. RDB는 상태를 저장하는 스냅샷을 만드는 것과 같습니다. ⼏⼼10GB data------> ⼏KB

snapshot

Snapshot은 메모리에 있는 데이터를 준비된 파일에 바이너리로 쓰는 방식입니다. 기본 파일 이름은 dump.rdb입니다.

장점: 스냅샷은 데이터를 매우 빠르게 저장하고 데이터를 매우 빠르게 복원합니다.

재해 복구 및 백업에 적합합니다.단점: RDB 메커니즘이 요구 사항을 충족하는 경우 메모리 머신이 사용하기에 적합하지 않습니다. Lost

Snapshots 조건:

1. 서버가 정상적으로 종료된 경우./bin/redis-cli shutdown

2. 키가 특정 조건을 충족하면 스냅샷이 생성됩니다.

AOF: 스냅샷 방법은 다음과 같습니다. 특정 시간 간격 내에 스냅샷을 찍는 경우 redis가 실수로 중단되면 마지막 스냅샷 이후의 모든 수정 사항이 손실됩니다. 응용 프로그램에서 수정 사항이 손실될 수 없도록 요구하는 경우 지속성 방법을 채택할 수 있습니다.

추가 전용 파일:aof는

aof 지속성 방법을 사용할 때 redis가 쓰기 기능을 통해 수신된 모든 쓰기 명령을 파일에 추가하기 때문에 스냅샷 방법보다 더 나은 지속성을 갖습니다. . Redis가 재시작되면 파일에 저장된

write 명령

을 실행하여 전체 데이터베이스의 내용을 메모리에 재구성합니다.

다음과 같은 세 가지 방법이 있습니다: (기본값은 초당 1회) appendonly yes는 지속성 모드를 활성화합니다. appendsync는 항상 쓰기 명령을 받은 후 즉시 디스크에 씁니다. 가장 느리지만 완전한 지속성을 보장합니다. appendsync는 디스크에 씁니다. 초당 한 번, 성능과 지속성 사이에서 적절한 절충안을 만듭니다.

appendsync no는 OS에 전적으로 의존하고 최고의 성능을 가지며 지속성은 보장되지 않습니다.

4 Redis 일반 데이터 유형 및 애플리케이션 시나리오


Redis는 5가지 데이터 유형을 지원합니다. String(문자열), hash(해시), list(목록), set(집합) 및 zset(sorted set: 순서가 지정된 집합) 등

4.1 String

string은 Redis의 가장 기본적인 유형의 One Key입니다. 하나의 값에 해당하며, 하나의 키는 최대 512MB까지 저장할 수 있습니다.

문자열 유형은 바이너리 안전합니다. 이는 Redis 문자열에 모든 데이터가 포함될 수 있음을 의미합니다. jpg 이미지나 직렬화된 객체 등. ⼼바이너리 보안이란 데이터를 전송할 때 바이너리 데이터의 정보 보안을 보장하는 것을 의미합니다. 즉, 변조, 해독 등이 되지 않습니다. 공격을 받으면 적시에 탐지할 수 있습니다

이전 맵과 동일⾮ 매우 유사합니다. 값은 문자열입니다.

SET key value
GET key
INCR 可以对应的key的数值(整型的数值)加⼀( 原⼦操作)INCRBY 给数值加上⼀个步⻓
SETEX expire 过期
SETNX not exist key不存在的时候再去赋值
로그인 후 복사

응용 시나리오: 매우 일반적인 시나리오는 웹사이트 방문 pv(페이지 보기) 수, 현재 온라인에 있는 사람 수 등을 계산하는 데 사용됩니다. incr 명령(++ 연산)


4.2 List

Redis的列表允许⽤户从序列的两端推⼊或者弹出元素,列表由多个字符串值组成的有序可重复的序列,是链表结构,所以向列表两端添加元素的时间复杂度为o(1),获取越接近两端的元素速度就越快。这意味着即使是⼀个有⼏千万个元素的列表,获取头部或尾部的10条记录也是极快的。List中可以包含的最⼤元素数量是4294967295。

操作命令:
LPUSH 后⾯的元素放在栈顶
LPOP 返回第⼀个元素,并且在列表上删除该元素 (栈顶)
LLEN 返回当前的list列表的⻓度
LINDEX 返回当前的list的指定index下标的元素。没有返回nil,0表示栈顶的元素
LINSERT 插⼊的位置是按照index的顺序,Before的话得注意 index的值
LPUSHX 如果list存在,再去push
LRANGE 可以⽅便的查看某个index范围内的list的值。输⼊的index是从0开始,显示的标号是从1开始的。
LREM 删除list⾥的指定的前⼏个(指定value的)元素
删除指定位置的元素:没有
LSET 设置指定的位置的元素的值 (修改) 输⼊的index是从0开始,显示的标号是从1开始的。
로그인 후 복사

应⽤场景:1.最新消息排⾏榜。2.消息队列,以完成多程序之间的消息交换。可以⽤push操作将任务存
在list中(⽣产者),然后线程在⽤pop操作将任务取出进⾏执⾏。(消费者)

4.3 Hash (⼆维表)

Redis中的散列可以看成具有String key和String value的map容器,可以将多个key-value存储到⼀个key中。每⼀个Hash可以存储4294967295个键值对。

HSET
HSET key field value
将哈希表 key 中的域 field 的值设为 value 。
如果 key 不存在,⼀个新的哈希表被创建并进⾏ HSET 操作。
如果域 field 已经存在于哈希表中,旧值将被覆盖。

HGET 返回哈希表 key 中给定域 field 的值。如果不存在,返回nil

HEXISTS
HEXISTS key field
查看哈希表 key 中,给定域 field 是否存在。

HGETALL
HGETALL key
返回哈希表 key 中,所有的域和值。
在返回值⾥,紧跟每个域名(field name)之后是域的值(value),所以返回值的⻓度是哈希表⼤⼩的
两倍。

HKEYS
HKEYS key
返回哈希表 key 中的所有值。

HLEN
返回哈希表 key 中值的数量。

HVALS
HVALS key
返回哈希表 key 中所有域的值。

HINCRBY
HINCRBY key field increment
为哈希表 key 中的域 field 的值加上增量 increment 。
增量也可以为负数,相当于对给定域进⾏减法操作。
如果 key 不存在,⼀个新的哈希表被创建并执⾏ HINCRBY 命令。
如果域 field 不存在,那么在执⾏命令前,域的值被初始化为 0 。
对⼀个储存字符串值的域 field 执⾏ HINCRBY 命令将造成⼀个错误。
本操作的值被限制在 64 位(bit)有符号数字表示之内。

HMGET
HMGET key field [field ...]返回哈希表 key 中,⼀个或多个给定域的值。
如果给定的域不存在于哈希表,那么返回⼀个 nil 值。
因为不存在的 key 被当作⼀个空哈希表来处理,所以对⼀个不存在的 key 进⾏ HMGET 操作将
返回⼀个只带有 nil 值的表。

HMSET
HMSET key field value [field value ...]同时将多个 field-value (域-值)对设置到哈希表 key 中。
此命令会覆盖哈希表中已存在的域。
如果 key 不存在,⼀个空哈希表被创建并执⾏ HMSET 操作。

HSETNX
HSETNX key field value
将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在。
若域 field 已经存在,该操作⽆效。
如果 key 不存在,⼀个新哈希表被创建并执⾏ HSETNX 命令。
로그인 후 복사

应⽤场景:例如存储、读取、修改⽤户属性(name,age,pwd等)

4.4 Set(⽆序集合)

SADD
SADD key member [member ...]将⼀个或多个 member 元素加⼊到集合 key 当中,已经存在于集合的 member 元素将被忽略。
假如 key 不存在,则创建⼀个只包含 member 元素作成员的集合。
当 key 不是集合类型时,返回⼀个错误。
SMEMBERS
SMEMBERS key
返回集合 key 中的所有成员。
不存在的 key 被视为空集合。
SISMEMBER
SISMEMBER key member
判断 member 元素是否集合 key 的成员。
SCARD
SCARD key
返回集合 key 的基数(集合中元素的数量)。
SPOP (弹出并从集合删除)
SPOP key
移除并返回集合中的⼀个随机元素。
如果只想获取⼀个随机元素,但不想该元素从集合中被移除的话,可以使⽤ SRANDMEMBER 命
令。
SRANDMEMBER
SRANDMEMBER key [count]如果命令执⾏时,只提供了 key 参数,那么返回集合中的⼀个随机元素。
随机取出 count个元素(不删除)
SINTER
SINTER key [key ...]返回⼀个集合的全部成员,该集合是所有给定集合的交集。
不存在的 key 被视为空集。
SINTERSTORE
SINTERSTORE destination key [key ...]这个命令类似于 SINTER 命令,但它将结果保存到 destination 集合,⽽不是简单地返回结果
集。
如果 destination 集合已经存在,则将其覆盖。
SUNION
SUNION key [key ...]返回⼀个集合的全部成员,该集合是所有给定集合的并集。
不存在的 key 被视为空集。
SUNIONSTORE
SUNIONSTORE destination key [key ...]这个命令类似于 SUNION 命令,但它将结果保存到 destination 集合,⽽不是简单地返回结果
集。
如果 destination 已经存在,则将其覆盖。
SDIFF
SDIFF key [key ...]返回⼀个集合的全部成员,该集合是所有给定集合之间的差集。
不存在的 key 被视为空集。
SDIFFSTORE
SDIFFSTORE destination key [key ...]这个命令的作⽤和 SDIFF 类似,但它将结果保存到 destination 集合,⽽不是简单地返回结果
集。
如果 destination 集合已经存在,则将其覆盖。 destination 可以是 key 本身。
SMOVE
SMOVE source destination member
将 member 元素从 source 集合移动到 destination 集合。SMOVE 是原⼦性操作。
SREM 删除
SREM key member [member ...]移除集合 key 中的⼀个或多个 member 元素,不存在的 member 元素会被忽略。
当 key 不是集合类型,返回⼀个错误。
로그인 후 복사

应⽤场景:
1.利⽤交集求共同好友。
2.利⽤唯⼀性,可以统计访问⽹站的所有独⽴IP。
3.好友推荐的时候根据tag求交集,⼤于某个threshold(临界值的)就可以推荐。
4.5 SortSet(有序集合)

ZADD
ZADD key score member [[score member] [score member] ...]将⼀个或多个 member 元素及其 score 值加⼊到有序集 key 当中。

ZCARD
ZCARD key
返回有序集 key 的基数。

ZSCORE
ZSCORE key member
返回有序集 key 中,成员 member 的 score 值。
如果 member 元素不是有序集 key 的成员,或 key 不存在,返回 nil 。

ZCOUNT (闭区间)
ZCOUNT key min max
返回有序集 key 中, score 值在 min 和 max 之间(默认包括 score 值等于 min 或 max )的
成员的数量。
关于参数 min 和 max 的详细使⽤⽅法,请参考 ZRANGEBYSCORE 命令。

ZINCRBY
ZINCRBY key increment member
为有序集 key 的成员 member 的 score 值加上增量 increment 。

ZRANGE
ZRANGE key start stop [WITHSCORES]返回有序集 key 中,指定区间内的成员。
其中成员的位置按 score 值递增(从⼩到⼤)来排序。
具有相同 score 值的成员按字典序(lexicographical order )来排列。

ZRANGEBYSCORE
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有
序集成员按 score 值递增(从⼩到⼤)次序排列。
根据指定的分值范围去查找

ZRANK (排名从0开始)
ZRANK key member
返回有序集 key 中成员 member 的排名。其中有序集成员按 score 值递增(从⼩到⼤)顺序排
列。

ZREVRANGE
ZREVRANGE key start stop [WITHSCORES]返回有序集 key 中,指定区间内的成员。
其中成员的位置按 score 值递减(从⼤到⼩)来排列。
具有相同 score 值的成员按字典序的逆序(reverse lexicographical order)排列。

ZREVRANGEBYSCORE
ZREVRANGE key start stop [WITHSCORES]返回有序集 key 中,指定区间内的成员。

ZREVRANK
ZREVRANK key member
返回有序集 key 中成员 member 的排名。其中有序集成员按 score 值递减(从⼤到⼩)排序。
排名以 0 为底,也就是说, score 值最⼤的成员排名为 0 。
使⽤ ZRANK 命令可以获得成员按 score 值递增(从⼩到⼤)排列的排名。

ZREM
ZREM key member [member ...]移除有序集 key 中的⼀个或多个成员,不存在的成员将被忽略。
当 key 存在但不是有序集类型时,返回⼀个错误。

ZREMRANGEBYRANK
ZREMRANGEBYRANK key start stop
移除有序集 key 中,指定排名(rank)区间内的所有成员。
区间分别以下标参数 start 和 stop 指出,包含 start 和 stop 在内。

ZREMRANGEBYSCORE
ZREMRANGEBYSCORE key min max
移除有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。
로그인 후 복사

应⽤场景:可以⽤于⼀个⼤型在线游戏的积分排⾏榜,每当玩家的分数发⽣变化时,可以执⾏zadd更新
玩家分数(score),此后在通过zrange获取⼏分top ten的⽤户信息。

5 Redis的整合(Jedis) Java for Redis

5.1 导包

<dependency>
 <groupid>redis.clients</groupid>
 <artifactid>jedis</artifactid>
 <version>2.9.0</version></dependency>
로그인 후 복사

5.2 配置

@Configurationpublic class RedisConfig {
 
 @Bean
 public Jedis jedis(){
 Jedis jedis = new Jedis("localhost", 6379);
 return jedis;
 }}
로그인 후 복사

5.3 使⽤

// 直接引⼊ @Autowiredprivate Jedis jedis;// 使⽤ 和在命令⾏客户端操作是⼀样的jedis.set();jedis.get();jedis.hset();jedis.hget();jedis.sadd();...
로그인 후 복사

6 Springboot2.x中Redis进⾏连接(RedisTemplate)

RedisTemplate 简介,SpringBoot对Redis进⾏了⼀层模板化的封装,⽅便我们对对象进⾏操作。底层
在SpringBoot1.x的时候使⽤的是Jedis,在Springboot2.x后使⽤的是lettuce。

6.1 导包

<dependency>
 <groupid>org.springframework.boot</groupid>
 <artifactid>spring-boot-starter-data-redis</artifactid></dependency><!-- 序列化 --><dependency>
 <groupid>com.fasterxml.jackson.core</groupid>
 <artifactid>jackson-core</artifactid>
 <version>2.10.0</version></dependency> <dependency>
 <groupid>com.fasterxml.jackson.core</groupid>
 <artifactid>jackson-databind</artifactid>
 <version>2.10.0</version></dependency>
로그인 후 복사

6.2 配置

@Configurationpublic class RedisConfig {

 @Bean
 public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory){
 RedisTemplate redisTemplate = new RedisTemplate();
 redisTemplate.setConnectionFactory(redisConnectionFactory);
 
 //定制化模板
 StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
 redisTemplate.setKeySerializer(stringRedisSerializer);
 // 设置value JackSon序列化⽅式
 Jackson2JsonRedisSerializer jsonRedisSerializer = new  Jackson2JsonRedisSerializer(Object.class);
 
 ObjectMapper objectMapper = new ObjectMapper();
 // 对于不是基本类型的变量显示全类名
 
 objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
 //设置值的属性可⻅
 objectMapper.setVisibility(PropertyAccessor.ALL,JsonAutoDetect.Visibility.AN
Y);
 jsonRedisSerializer.setObjectMapper(objectMapper);
 redisTemplate.setValueSerializer(jsonRedisSerializer);
 return redisTemplate;
 }}
로그인 후 복사

6.3 使⽤

 redisTemplate.opsForValue().set();
 redisTemplate.opsForHash().put();
 redisTemplate.opsForList().leftPush();
 redisTemplate.opsForSet().add();
 redisTemplate.opsForZSet().add();
로그인 후 복사

7 Springboot2.x中使⽤Redisson进⾏连接

Redisson:Redisson是⼀个在Redis的基础上实现的Java驻内存数据⽹格(In-Memory Data Grid)。它不仅提供了⼀系列的分布式的Java常⽤对象,还提供了许多分布式服务。其中包括( BitSet , Set ,
Multimap , SortedSet , Map , List , Queue , BlockingQueue , Deque , BlockingDeque ,Semaphore , Lock , AtomicLong , CountDownLatch , Publish / Subscribe , Bloom filter ,Remote service , Spring cache , Executor service , Live Object service , Scheduler service ) Redisson提供了使⽤Redis的最简单和最便捷的⽅法。Redisson的宗旨是促进使⽤者对Redis的关注分离(Separation of Concern),从⽽让使⽤者能够将精⼒更集中地放在处理业务逻辑上。

开源地址:https://github.com/redisson/redisson

7.1 导包

<dependency>
 <groupid>org.redisson</groupid>
 <artifactid>redisson</artifactid>
 <version>3.5.7</version></dependency>
로그인 후 복사

7.2 配置

@Configurationpublic class RedissonConfig {
 
 @Bean
 public RedissonClient getRedisson(){
   Config config = new Config();
   config.useSingleServer().setAddress("redis://localhost:6379");
 return Redisson.create(config);
 }}
로그인 후 복사

7.3 使⽤

参考命令匹配列表

8 Redis内存淘汰策略

Redis官⽅给的警告,当内存不⾜时,Redis会根据配置的缓存策略淘汰部分的Keys,以保证写⼊成功。当⽆淘汰策略时或者没有找到适合淘汰的Key时,Redis直接返回 out of memory错误。

最⼤缓存配置
在Redis中,允许⽤户设置的最⼤使⽤内存⼤⼩
maxmemory 512G

Redis提供8种(5.0以后)数据淘汰策略:

  • volatile-lru:从已设置过期时间的数据集中挑选最近最少使⽤的数据淘汰
  • volatile-lfu:从已设置过期的Keys中,删除⼀段时间内使⽤次数最少使⽤ 的key
  • volatile-ttl:从已设置过期时间的数据集中挑选最近将要过期的数据进⾏淘汰
  • volatile-random:从已设置过期时间的数据集中随机选择数据淘汰
  • allkeys-lru:从数据集中挑选最近最少使⽤的数据淘汰
  • allkeys-lfu:从所有的keys中,删除⼀段时间内使⽤次数最少的key
  • allkeys-random:从数据集中随机选择数据淘汰
  • no-enviction(驱逐):禁⽌驱逐数据(不采⽤任何淘汰策略。默认即此配置),内存不⾜时,针对写操作,返回错误信息

建议:了解了Redis的淘汰策略之后,在平时使⽤时应尽量主动设置/更新key的expire时间,主动剔除不活跃的旧数据,有助于提升查询性能

위 내용은 Redis 심층 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Redis 클러스터 모드를 구축하는 방법 Redis 클러스터 모드를 구축하는 방법 Apr 10, 2025 pm 10:15 PM

Redis Cluster Mode는 Sharding을 통해 Redis 인스턴스를 여러 서버에 배포하여 확장 성 및 가용성을 향상시킵니다. 시공 단계는 다음과 같습니다. 포트가 다른 홀수 redis 인스턴스를 만듭니다. 3 개의 센티넬 인스턴스를 만들고, Redis 인스턴스 및 장애 조치를 모니터링합니다. Sentinel 구성 파일 구성, Redis 인스턴스 정보 및 장애 조치 설정 모니터링 추가; Redis 인스턴스 구성 파일 구성, 클러스터 모드 활성화 및 클러스터 정보 파일 경로를 지정합니다. 각 redis 인스턴스의 정보를 포함하는 Nodes.conf 파일을 작성합니다. 클러스터를 시작하고 Create 명령을 실행하여 클러스터를 작성하고 복제본 수를 지정하십시오. 클러스터에 로그인하여 클러스터 정보 명령을 실행하여 클러스터 상태를 확인하십시오. 만들다

Redis 데이터를 지우는 방법 Redis 데이터를 지우는 방법 Apr 10, 2025 pm 10:06 PM

Redis 데이터를 지우는 방법 : Flushall 명령을 사용하여 모든 키 값을 지우십시오. FlushDB 명령을 사용하여 현재 선택한 데이터베이스의 키 값을 지우십시오. 선택을 사용하여 데이터베이스를 전환 한 다음 FlushDB를 사용하여 여러 데이터베이스를 지우십시오. del 명령을 사용하여 특정 키를 삭제하십시오. Redis-Cli 도구를 사용하여 데이터를 지우십시오.

Redis 대기열을 읽는 방법 Redis 대기열을 읽는 방법 Apr 10, 2025 pm 10:12 PM

Redis의 대기열을 읽으려면 대기열 이름을 얻고 LPOP 명령을 사용하여 요소를 읽고 빈 큐를 처리해야합니다. 특정 단계는 다음과 같습니다. 대기열 이름 가져 오기 : "큐 :"와 같은 "대기열 : my-queue"의 접두사로 이름을 지정하십시오. LPOP 명령을 사용하십시오. 빈 대기열 처리 : 대기열이 비어 있으면 LPOP이 NIL을 반환하고 요소를 읽기 전에 대기열이 존재하는지 확인할 수 있습니다.

Redis Lock을 사용하는 방법 Redis Lock을 사용하는 방법 Apr 10, 2025 pm 08:39 PM

Redis를 사용하여 잠금 작업을 사용하려면 SetNX 명령을 통해 잠금을 얻은 다음 만료 명령을 사용하여 만료 시간을 설정해야합니다. 특정 단계는 다음과 같습니다. (1) SETNX 명령을 사용하여 키 값 쌍을 설정하십시오. (2) 만료 명령을 사용하여 잠금의 만료 시간을 설정하십시오. (3) DEL 명령을 사용하여 잠금이 더 이상 필요하지 않은 경우 잠금을 삭제하십시오.

Redis 명령을 사용하는 방법 Redis 명령을 사용하는 방법 Apr 10, 2025 pm 08:45 PM

Redis 지시 사항을 사용하려면 다음 단계가 필요합니다. Redis 클라이언트를 엽니 다. 명령 (동사 키 값)을 입력하십시오. 필요한 매개 변수를 제공합니다 (명령어마다 다름). 명령을 실행하려면 Enter를 누르십시오. Redis는 작업 결과를 나타내는 응답을 반환합니다 (일반적으로 OK 또는 -err).

Redis의 소스 코드를 읽는 방법 Redis의 소스 코드를 읽는 방법 Apr 10, 2025 pm 08:27 PM

Redis 소스 코드를 이해하는 가장 좋은 방법은 단계별로 이동하는 것입니다. Redis의 기본 사항에 익숙해집니다. 특정 모듈을 선택하거나 시작점으로 기능합니다. 모듈 또는 함수의 진입 점으로 시작하여 코드를 한 줄씩 봅니다. 함수 호출 체인을 통해 코드를 봅니다. Redis가 사용하는 기본 데이터 구조에 익숙해 지십시오. Redis가 사용하는 알고리즘을 식별하십시오.

Redis 명령 줄을 사용하는 방법 Redis 명령 줄을 사용하는 방법 Apr 10, 2025 pm 10:18 PM

Redis Command Line 도구 (Redis-Cli)를 사용하여 다음 단계를 통해 Redis를 관리하고 작동하십시오. 서버에 연결하고 주소와 포트를 지정하십시오. 명령 이름과 매개 변수를 사용하여 서버에 명령을 보냅니다. 도움말 명령을 사용하여 특정 명령에 대한 도움말 정보를 봅니다. 종금 명령을 사용하여 명령 줄 도구를 종료하십시오.

Centos redis에서 lua 스크립트 실행 시간을 구성하는 방법 Centos redis에서 lua 스크립트 실행 시간을 구성하는 방법 Apr 14, 2025 pm 02:12 PM

CentOS 시스템에서는 Redis 구성 파일을 수정하거나 Redis 명령을 사용하여 악의적 인 스크립트가 너무 많은 리소스를 소비하지 못하게하여 LUA 스크립트의 실행 시간을 제한 할 수 있습니다. 방법 1 : Redis 구성 파일을 수정하고 Redis 구성 파일을 찾으십시오. Redis 구성 파일은 일반적으로 /etc/redis/redis.conf에 있습니다. 구성 파일 편집 : 텍스트 편집기 (예 : VI 또는 Nano)를 사용하여 구성 파일을 엽니 다. Sudovi/etc/redis/redis.conf LUA 스크립트 실행 시간 제한을 설정 : 구성 파일에서 다음 줄을 추가 또는 수정하여 LUA 스크립트의 최대 실행 시간을 설정하십시오 (Unit : Milliseconds).

See all articles