Redis:修订间差异

来自牛奶河Wiki
跳到导航 跳到搜索
无编辑摘要
无编辑摘要
 
(未显示同一用户的7个中间版本)
第1行: 第1行:
Redis(Remote Dictionary Server, 远程字典服务),是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库。
[https://redis.io/ Redis](Remote Dictionary Server, 远程字典服务),是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库。


Redis 的数据是存在内存中的,读写速度每秒可处理超过 10 万次读写操作。广泛应用在应用缓存领域,也经常用来做分布式锁。除此之外,Redis 支持事务、持久化、LUA 脚本、LRU 驱动事件、多种集群方案。<blockquote>The open source, in-memory data store used by millions of developers as a database, cache, streaming engine, and message broker.
Redis 的数据是存在内存中的,读写速度每秒可处理超过 10 万次读写操作。广泛应用在应用缓存领域,也经常用来做分布式锁。除此之外,Redis 支持事务、持久化、LUA 脚本、LRU 驱动事件、多种集群方案。<blockquote>The open source, in-memory data store used by millions of developers as a database, cache, streaming engine, and message broker.</blockquote>


[https://redis.io/ Redis]</blockquote>
=== License ===
2024 年 3 月 20 日,[https://github.com/redis/redis Redis] 项目的开源协议发生了重大改变,从非常宽松的 BSD 转为 Redis 源代码可用许可证(RSALv2)和服务器端公共许可证(SSPLv1)下双重许可。在新的许可证下,托管云服务提供商不再被允许免费使用 Redis 的源代码。


===基本类型:===
=== Redis Stack ===
====String(字符串)====
Redis Stack 扩展了 Redis OSS 的核心功能,更加专注于构建实时应用程序,并为调试等提供了完整的开发人员体验。
set key value/get key
* Redis Stack Server,包括:Redis,RedisSearch,RedisJSON,RedisGraph,RedisTimeSeries 和 RedisBloom等
*Max: 512M
* RedisInsight
*内部编码有3种,int(8字节长整型)、embstr(<=39 Byte)、raw(>39 Byte)
* Redis Stack Client SDK
*应用场景: 共享session、分布式锁、计数器、限流
*C 语言的字符串是 char[] 实现的,而 Redis 使用 SDS(Simple Dynamic String)结构:
struct sdshdr {
   unsigned int len;  // 字符串长度
   unsigned int free; // 空闲长度
   char buf[];        // 字符串
}
====Hash(哈希)====
哈希类型是指 value 本身又是一个键值对(k-v)结构


hset key field value/hget key field/hscan key
=== Install ===
==== Install Redis Stack ====
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
apt-get update
apt-get install redis-stack-server
systemctl start redis-stack-server.service
## 外网访问
# /etc/redis-stack.conf
bind * -::*
protected-mode no


* 底层编码:ziplist(压缩列表) 、hashtable(哈希表)
==== Install Redis Enterprise ====
* 应用场景:缓存用户信息等
* https://redis.io/docs/latest/operate/rs/installing-upgrading/install/install-on-linux/
* 注意:哈希元素比较多的话,使用 hgetall 可能会导致 Redis 阻塞,可以使用 hscan。若只是获取部分 field,使用 hmget
* wget https://redis.io/docs/latest/operate/rs/installing-upgrading/install/GPG-KEY-redislabs-packages.gpg
* gpg --import GPG-KEY-redislabs-packages.gpg
<small><small><gpg: directory '/root/.gnupg' created
gpg: keybox '/root/.gnupg/pubring.kbx' created
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key EC5EC593D7D1529F: public key "Redis Labs Package Signing Key (2020) <[email protected]>" imported
gpg: Total number processed: 1
gpg:              imported: 1</i></small></small>
* dpkg-sig --verify redislabs_7.4.2-129~focal_amd64.deb
<small><small><Processing redislabs_7.4.2-129~focal_amd64.deb...
GOODSIG _gpgorigin 5E8EFA2409E5C44FB529BE20EC5EC593D7D1529F 1712603737</i></small></small>
* install.sh
* start
# /opt/redislabs/bin/
redis-server


====List(列表)====
=== Redis Shell ===
有序多个元素,最多可以存储 2^32-1 个元素
====可执行文件====
{| class="wikitable"
|可执行文件
|作用
|-
|redis-server
|启动redis
|-
|redis-cli
|redis命令行工具
|-
|redis-benchmark
|基准测试工具
|-
|redis-check-aof
|AOF持久化文件检测工具和修复工具
|-
|redis-check-dump
|RDB持久化文件检测工具和修复工具
|-
|redis-sentinel
|启动redis-sentinel
|}


lpush key value[value ...] 、lrange key start end
==== redis-cli ====
redis-cli [-h {host} -p {port} {command}]
redis-cli -help


* 底层编码:ziplist(压缩列表)、linkedlist(链表)
==== Passwd ====
* 应用场景:消息队列,文章列表
redis-cli
# 认证密码
auth "密码"
# 查看密码
config get requirepass
# 修改密码
config set requirepass "密码"


# Stack(栈): lpush + lpop
# Queue(队列): lpush + rpop
# Capped Collection(有限集合): lpush + ltrim
# Message Queue(消息队列): lpush + brpop
====Set(集合)====
元素不重复
sadd key element[element...]、smembers key
* 底层编码:intset(整数集合)、hashtable(哈希表)
* 应用场景:用户标签、生成随机数抽奖、社交需求
* 注意:元素比较多的话,使用 smembers 和 lrange、hgetall 可能会导致 Redis 阻塞,可以使用 sscan
====zset(有序集合)====
zadd key score member[score member...],zrank key member
* 底层编码:ziplist(压缩列表)、skiplist(跳跃表)
* 应用场景:排行榜,社交需求(如用户点赞)
===数据结构类型===
*Geospatial
*Hyperloglog
*Bitmap
[[分类:Develop]]
[[分类:Develop]]
[[分类:DB]]
[[分类:DB]]
[[分类:OtherDB]]
[[分类:Redis]]
[[分类:Redis]]

2025年4月1日 (二) 13:33的最新版本

Redis(Remote Dictionary Server, 远程字典服务),是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库。

Redis 的数据是存在内存中的,读写速度每秒可处理超过 10 万次读写操作。广泛应用在应用缓存领域,也经常用来做分布式锁。除此之外,Redis 支持事务、持久化、LUA 脚本、LRU 驱动事件、多种集群方案。

The open source, in-memory data store used by millions of developers as a database, cache, streaming engine, and message broker.

License

2024 年 3 月 20 日,Redis 项目的开源协议发生了重大改变,从非常宽松的 BSD 转为 Redis 源代码可用许可证(RSALv2)和服务器端公共许可证(SSPLv1)下双重许可。在新的许可证下,托管云服务提供商不再被允许免费使用 Redis 的源代码。

Redis Stack

Redis Stack 扩展了 Redis OSS 的核心功能,更加专注于构建实时应用程序,并为调试等提供了完整的开发人员体验。

  • Redis Stack Server,包括:Redis,RedisSearch,RedisJSON,RedisGraph,RedisTimeSeries 和 RedisBloom等
  • RedisInsight
  • Redis Stack Client SDK

Install

Install Redis Stack

curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
apt-get update
apt-get install redis-stack-server
systemctl start redis-stack-server.service 
## 外网访问
# /etc/redis-stack.conf
bind * -::* 
protected-mode no

Install Redis Enterprise

<gpg: directory '/root/.gnupg' created
gpg: keybox '/root/.gnupg/pubring.kbx' created
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key EC5EC593D7D1529F: public key "Redis Labs Package Signing Key (2020) <[email protected]>" imported
gpg: Total number processed: 1
gpg:               imported: 1
  • dpkg-sig --verify redislabs_7.4.2-129~focal_amd64.deb
<Processing redislabs_7.4.2-129~focal_amd64.deb...
GOODSIG _gpgorigin 5E8EFA2409E5C44FB529BE20EC5EC593D7D1529F 1712603737
  • install.sh
  • start
# /opt/redislabs/bin/
redis-server

Redis Shell

可执行文件

可执行文件 作用
redis-server 启动redis
redis-cli redis命令行工具
redis-benchmark 基准测试工具
redis-check-aof AOF持久化文件检测工具和修复工具
redis-check-dump RDB持久化文件检测工具和修复工具
redis-sentinel 启动redis-sentinel

redis-cli

redis-cli [-h {host} -p {port} {command}]
redis-cli -help

Passwd

redis-cli 
# 认证密码
auth "密码"
# 查看密码
config get requirepass
# 修改密码
config set requirepass "密码"