Redis:修订间差异

来自牛奶河Wiki
跳到导航 跳到搜索
无编辑摘要
无编辑摘要
 
(未显示同一用户的3个中间版本)
第5行: 第5行:
[https://redis.io/ Redis]</blockquote>
[https://redis.io/ Redis]</blockquote>


===基本类型:===
=== License ===
====String(字符串)====
2024 年 3 月 20 日,[https://github.com/redis/redis Redis] 项目的开源协议发生了重大改变,从非常宽松的 BSD 转为 Redis 源代码可用许可证(RSALv2)和服务器端公共许可证(SSPLv1)下双重许可。在新的许可证下,托管云服务提供商不再被允许免费使用 Redis 的源代码。
set key value/get key
*Max: 512M
*内部编码有3种,int(8字节长整型)、embstr(<=39 Byte)、raw(>39 Byte)
*应用场景: 共享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
=== Redis Stack ===
Redis Stack 扩展了 Redis OSS 的核心功能,更加专注于构建实时应用程序,并为调试等提供了完整的开发人员体验。
* Redis Stack Server,包括:Redis,RedisSearch,RedisJSON,RedisGraph,RedisTimeSeries 和 RedisBloom等
* RedisInsight
* Redis Stack Client SDK


* 底层编码:ziplist(压缩列表) 、hashtable(哈希表)
=== Install ===
* 应用场景:缓存用户信息等
==== Install Redis Stack ====
* 注意:哈希元素比较多的话,使用 hgetall 可能会导致 Redis 阻塞,可以使用 hscan。若只是获取部分 field,使用 hmget
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


====List(列表)====
==== Install Redis Enterprise ====
有序多个元素,最多可以存储 2^32-1 个元素
* https://redis.io/docs/latest/operate/rs/installing-upgrading/install/install-on-linux/
* 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><i>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><i>Processing redislabs_7.4.2-129~focal_amd64.deb...
GOODSIG _gpgorigin 5E8EFA2409E5C44FB529BE20EC5EC593D7D1529F 1712603737</i></small></small>
* install.sh
* start
# /opt/redislabs/bin/
redis-server


lpush key value[value ...] 、lrange key start end
=== Passwd ===
 
redis-cli
* 底层编码:ziplist(压缩列表)、linkedlist(链表)
# 认证密码
* 应用场景:消息队列,文章列表
auth "密码"
 
# 查看密码
# Stack(栈): lpush + lpop
config get requirepass
# Queue(队列): lpush + rpop
# 修改密码
# Capped Collection(有限集合): lpush + ltrim
config set requirepass "密码"
# 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]]
[[分类:OtherDB]]

2024年5月22日 (三) 16:56的最新版本

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. Redis

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

Passwd

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