Redis:修订间差异

来自牛奶河Wiki
跳到导航 跳到搜索
无编辑摘要
无编辑摘要
第5行: 第5行:
[https://redis.io/ Redis]</blockquote>
[https://redis.io/ Redis]</blockquote>


===基本类型:===
=== Install ===
====String(字符串)====
* https://redis.io/docs/latest/operate/rs/installing-upgrading/install/install-on-linux/
set key value/get key
* wget https://redis.io/docs/latest/operate/rs/installing-upgrading/install/GPG-KEY-redislabs-packages.gpg
*Max: 512M
* gpg --import GPG-KEY-redislabs-packages.gpg
*内部编码有3种,int(8字节长整型)、embstr(<=39 Byte)、raw(>39 Byte)
<small><small><i>gpg: directory '/root/.gnupg' created
*应用场景: 共享session、分布式锁、计数器、限流
gpg: keybox '/root/.gnupg/pubring.kbx' created
*C 语言的字符串是 char[] 实现的,而 Redis 使用 SDS(Simple Dynamic String)结构:
gpg: /root/.gnupg/trustdb.gpg: trustdb created
  struct sdshdr {
gpg: key EC5EC593D7D1529F: public key "Redis Labs Package Signing Key (2020) <[email protected]>" imported
     unsigned int len;  // 字符串长度
  gpg: Total number processed: 1
     unsigned int free; // 空闲长度
  gpg:              imported: 1</i></small></small>
     char buf[];        // 字符串
* dpkg-sig --verify redislabs_7.4.2-129~focal_amd64.deb
}
  <small><small><i>Processing redislabs_7.4.2-129~focal_amd64.deb...
====Hash(哈希)====
  GOODSIG _gpgorigin 5E8EFA2409E5C44FB529BE20EC5EC593D7D1529F 1712603737</i></small></small>
哈希类型是指 value 本身又是一个键值对(k-v)结构


hset key field value/hget key field/hscan key
* install.sh


* 底层编码:ziplist(压缩列表) 、hashtable(哈希表)
=== start ===
* 应用场景:缓存用户信息等
# /opt/redislabs/bin/
* 注意:哈希元素比较多的话,使用 hgetall 可能会导致 Redis 阻塞,可以使用 hscan。若只是获取部分 field,使用 hmget
redis-server


====List(列表)====
=== Passwd ===
有序多个元素,最多可以存储 2^32-1 个元素
redis-cli
# 认证密码
auth "密码"
# 查看密码
config get requirepass
# 修改密码
config set requirepass "密码"


lpush key value[value ...] 、lrange key start end
* 底层编码:ziplist(压缩列表)、linkedlist(链表)
* 应用场景:消息队列,文章列表
# 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]]
[[分类:OtherDB]]

2024年5月14日 (二) 16:29的版本

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

Install

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 "密码"