>데이터 베이스 >Redis >Redis 기본 데이터 유형 및 작업(요약 공유)

Redis 기본 데이터 유형 및 작업(요약 공유)

WBOY
WBOY앞으로
2022-11-10 16:38:011946검색

이 기사는 기본 데이터 유형 및 작업에 대한 관련 내용을 주로 소개하는 Redis에 대한 관련 지식을 제공합니다. 모두에게 도움이 되기를 바랍니다.

Redis 기본 데이터 유형 및 작업(요약 공유)

추천 학습: Redis 비디오 튜토리얼

Redis 소개

redis는 개발자 Salvatore Sanfilippo(Antirez)가 웹사이트의 확장성을 향상시키기 위해 주로 개발한 오픈 소스 인메모리 데이터 구조 저장소입니다. 데이터베이스, 캐시, 메시지 브로커 등으로 사용되는 Redis는 프로젝트와 함께 사용할 수 있습니다.

Redis는 풍부한 데이터 구조, 뛰어난 속도 및 완벽한 기능을 갖추고 있습니다. 많은 회사에서 Redis를 사용하고 있습니다. Redis는 다음과 같은 특징을 가지고 있습니다.

  • 빠른
  • NoSQL 데이터베이스
  • 다양한 환경을 지원합니다

Redis는 메모리 데이터베이스입니다. 모든 데이터가 하드디스크가 아닌 메모리에 저장된다는 의미입니다. (물론 하드디스크의 전체 백업과 증분 백업도 지원됩니다.) 메모리의 특징은 빠른 접근과 빠른 검색을 지원할 수 있다는 점이지만, 공간적 제약도 따른다.

데이터베이스 아키텍처에서 Redis는 일반적으로 NoSQL 데이터베이스 또는 애플리케이션의 부하를 줄이고 캐싱 시 데이터 액세스 대기 시간을 줄이기 위해 클라이언트와 데이터베이스 사이에 위치합니다.

Redis의 주요 용도

  • Queue
  • Publish/Subscribe
  • 실시간 분석
  • 기계 학습: 기계 학습을 위한 크고 다양하며 빠른 데이터의 빠른 처리
  • 지리 공간 처리
  • 리더보드/개수 (즉, 매일 보는 핫한 검색어)
  • 세션 캐싱
  • 전체 페이지 캐싱

Redis를 사용하는 회사

Who uses Redis?

Redis 사용법 및 시작

인터넷에 많은 설치 튜토리얼이 있습니다. 여기 Mac 버전입니다. 예를 들어 Redis 서버를 설치한 후 다음 명령을 통해 Redis 서버를 시작할 수 있습니다:

redis-server

다음 명령을 통해 redis-cli 클라이언트를 시작할 수 있습니다:

redis-cli -h 127.0.0.1 -p 6379

그림에 표시된 대로:

이제 Redis의 PING 명령을 전달할 수 있습니다. 이 명령은 일반적으로 클라이언트와 서버 간의 연결이 정상적인지 테스트하는 데 사용됩니다. 그러면 서버는 PONG을 클라이언트에게 응답으로 반환합니다.

127.0.0.1:6379> PINGPONG

실제 테스트는 다음과 같습니다.

Redis 예비 도입 작업이 완료되었습니다. 머신 공통의 기본 데이터 구조를 살펴보겠습니다. Redis의 운영. re redis

string
  • hash
  • list
  • set
  • setsetsetset
  • hyperloglog
  • bitmap
  • 의 기본 데이터 유형이 기사는 처음 5 개의 공통 데이터 구조를 소개하고 나중에 많은 많은 사람들이 업데이트 될 것입니다. 다섯 가지 일반적인 기본 데이터 유형은 다음과 같이 다른 문서에서 별도로 소개되고 설명됩니다.

String

String(string)은 Redis의 가장 기본적인 키-값 쌍 유형입니다. 이 유형은 일반 텍스트와 직렬화된 바이너리 데이터를 모두 유지할 수 있습니다.

문자열 유형은 단일 키를 데이터베이스의 단일 값과 연결합니다. 연결된 키와 값은 일반 텍스트 데이터일 수도 있고 사진, 비디오, 오디오, 압축 파일 등일 수도 있습니다. 복잡한 바이너리 데이터입니다. 문자열 유형은 최대 512M의 데이터를 저장할 수 있습니다.

문자열에 대한 몇 가지 일반적인 작업

SET 명령: SET 번호 "10086"과 같이 문자열에 해당하는 값을 설정합니다.
  • GET 명령: 키에 해당하는 값을 가져옵니다SET number "10086"
  • GET 命令:获取键对应的值
127.0.0.1:6379> SET number "10086"OK127.0.0.1:6379> GET number"10086"127.0.0.1:6379>
  • GETRANGE:获取截取字符串内容
  • STRLEN:获取字符串长度,如 STRLEN email
  • SETEX:设置带有过期时间(秒)的 KEY-VALUE,如 SETEX city 5 Beijing
127.0.0.1:6379> INCR number(integer) 10087127.0.0.1:6379>
GETRANGE: 가로채는 문자열 내용 가져오기

STRLEN: STRLEN 이메일과 같은 문자열 길이 가져오기🎜🎜SETEX: SETEX 도시 5 베이징🎜🎜🎜🎜 플래시 세일 이벤트 PSETEX 설정 밀리초🎜
  • MSET:设置多个 KEY-VALUE ,如 MSET username jack sex male age 24
  • MGET:获取多个 VALUE,如 MGET username sex age
  • APPEND: 用于在字符串结尾追加内容
  • INCR:数字自增加1 ,如 INCR number
127.0.0.1:6379> INCR number(integer) 10087127.0.0.1:6379>
  • INCRBY:数字加上指定的整数值
  • INCRBYFLOAT:数字加上指定的浮点数
  • DECR:数字自增减一
  • DECBY:数字减去指定的整数值

这些命令,大家都可以自己在。 Redis 客户端进行测试。

哈希类型

用来保存更复杂的结构化数据

  • HSET:设置哈希表字段
  • HMSET:设置哈希表多个字段
  • HGET:获取哈希表字段值,如 HGET 8000 ename
  • HMGET:获取多个哈希表字段值,如 HMGET 80000 ename job deptno
  • HGETALL:获取所有哈希表字段值
  • HKEYS:获取所有哈希表字段名
  • HLEN:哈希表中的字段数量
  • HEXISTS:判断哈希表是否存在某个字段
  • HVALS:获取哈希表中的所有字段值
  • HDEL:删除哈希表的字段
  • HINCRBY:让哈希表某个字段值加上指定的整数值,如 HINCRBY 8000 deptono 10
  • HINCRBYFLOART:让哈希表某个字段值加上指定的浮点数

列表类型

当我们需要向 VALUE 保存序列化的数据,可以使用列表类型

RPUSH dname 技术部 后勤部 售后部
LPUSH dname 秘书处
LSET dname 2 销售部
LRANGE dname 0 -1
  • RPUSH:在列表末尾新增值
  • LPUSH:在列表开头新增值
  • LLEN:获取列表长度
  • LINDEX:获取列表某个元素,如 lindex dname 0
  • LINSERT:在某个位置插入元素,如 linsert dname before 秘书处 董事会
  • LPOP:删除最左边的元素 LPOP dname
  • RPOP:删除列表最右边的元素 RPOP dname
  • LREM:删除列表某个元素,如
RPUSH employee Scott
RPUSH employee Jack
RPUSH employee Scott

LREM employee 1 Scott # 删除第一个Scott,不是指索引为一

集合类型

假如要求数据不允许重复,则可以使用集合类型。

集合操作

SADD empno 8000SADD empno 8001SADD empno 8002SADD empno 8003 8004 8005SMEMBERS empno
  • SADD:将给定值添加到集合
  • SCARD:获取集合长度,如: SCARD empno
  • SISMEMBER:判断是否含有某个元素,如 SISMENBER empno 8000
  • SREM:删除某个元素
  • SPOP:随机删除并返回集合的某个元素,如 SPOP empno
  • SRANDMEMBER:随机返回集合中的元素,如 SRANDMEMBER empno 5
  • SUNION:组合两个或多个集合并返回所有元素的列表
  • SMOVE:将成员从一个集合移动到另一个集合

有序集合

带有排序功能的集合,Redis 按照元素分数值排序

ZADD keyword 0 "han" 0 "jack ma" 0 "Andrew wu"ZINCRBY keyword 1 "han"ZINCRBY keyword 5 "jack ma"ZINCRBY keyword 2 "Andrew wu"ZREVRANGE key 0 -1
  • ZCARD:获取有序集合长度
  • ZCOUNT:查询某个分数值区间内的元素数量,如 ZCOUNT keyword 5 10
  • ZSCORE:查询元素的分数值
  • ZRANGE:获取有序集合的内容(升序),如 ZRANGE keyword 0 -1
  • ZREVRANGE:获取有序集合的内容(降序),如 ZREVRANGE keyword 0 -1
  • ZRANGEBYSCORE:获取分数值区间内的集合内容(升序),如
zrangebyscore keyword 5 10  # 5-10
zrangebyscore keyword 5 (10  # 大于等于5, 小于 10
zrangebyscore keyword 100000 +inf
  • ZREVRANGEBYSCORE:获取分数值区间内的集合内容(降序) zrevrangebyscore keyword 10 5
  • ZRANK:获取元素的升序排名(从0开始)zrank keyword "xx"
  • ZREVRANK:获取元素的降序排名(从0开始)
  • ZREM:删除有序集合中的元素 ZREM keyword "x" "y"
  • ZREMRANGEBYRANK:删除排名区间内的元素 zremrangebyrank keyword 0 2
  • ZREMRANGEBYSCORE:删除分数值区间内的元素 zremrangebyscore keyword 0 -3

zremrangebyscore keyword inf (5000)

推荐学习:Redis视频教程

위 내용은 Redis 기본 데이터 유형 및 작업(요약 공유)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 juejin.im에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제