Redis知识总结

1、redis数据类型

1.1 String

string类型是redis的基本类型,string类型是二进制安全的,可以包含任何数据,比如jpg图片或者序列号对象。string类型的值最大能存储512M

常用命令:

SET key value, 设置指定的key值
GET key,获取指定key的值
GETRANGE key start end,返回key中字符串值的子字符串
GETSET key value,将给定key的值设为value,并返回key的旧值。返回给定 key 的旧值。 当 key 没有旧值时,即 key 不存在时,返回 nil 。
GETBIT key offset,对key所存储的字符串值,获取指定偏移量上的位(bit)。
SETBIT key offset value,对key所存储的字符串值,设置或清除指定偏移量上的位(bit).
MGET key1[key2...],获取所有(一个或多个)给定key的值。
MSET key value [key value ....],同时设置一个或多个key-value值对
SETEX key seconds value,将值value关联到key,并将key的过期时间设置为多少seconds
PSETEX key millseconds value,设置过期时间为毫秒的key-value值对
SETNX key value,只有在key不存在的情况下设置key的值
STRLEN key,返回key所存储的字符串值的长度。
INCR key,将key中存储的数字值增一
INCRBY key increment,将key所存储的值加上给定的增量值 (increment)。
DECR key,将key中存储的值减一
DECRBY key decrement,将key所存储的值减去戈丁的减量值(decrement)。
APPEND key value,将value值追加到key所对应的value的末尾。

1.2 Hash

redis hash 是一个string类型的field(字段)和value(值)的映射表,hash特别适合于存储对象。

适用场景:

电商购物车实现场景可以通过hset 添加商品 hincrby 添加商品数量 hlen获取商品总数 hdel删除商品 hgetall获取购物车所有商品

可以做单点登录存放用户信息

常用命令:

HDEL key field1[field2],删除一个或多个哈希表字段
HEXISTS key field,查看哈希表key中,指定的字段是否存在
HGET key filed,获取存储在哈希表中指定的字段的值
HGETALL key,获取在哈希表中指定key的所有字段和值
HINCRBY key field increment,为指定字段的整数值加上增量increment
HKEYS key,获取所有哈希表中的字段
HLEN key,获取哈希表中字段的数量
HMGET key field1[field2],获取所有给定字段的值
HMSET key field value[field2 value2],同时将多个field-value对设置到哈希表key中
HSET key field value,将哈希表key中的字段field的值设为value
HSETNX key field value,只有在字段field不存在时,设置哈希表字段的值。
HVALS key,获取哈希表中所有的值
HSCAN key cursor[MATCH pattern][COUNT count],迭代哈希表中的键值对

1.3 List

redis中的列表是简单的字符串列表,按照插入的顺序排序,可以添加一个元素到列表的头部或尾部。

常用命令:

BLPOP key timeout,移出并获取列表中的第一个元素,如果列表中没有元素会阻塞列表直到等待超时或发现有元素可弹出为止。
BRPOP key timeout,移出并获取列表中的最后一个元素,如果列表中没有元素会阻塞列表直到等待超时或发现有元素可弹出为止。
LINDEX key index,通过索引获取列表中的元素
LLEN key,获取列表的长度
LPOP key, 移出并获取列表的第一个元素
LPUSH key value,将一个值插入到列表头部
LPUSHX key value,将一个值插入到已存在的列表头部
LRANGE key start stop,获取列表指定范围内的元素
LREM key count value,移除列表元素
LSET key index value,通过索引设置列表元素的值
LTRIM key start stop,让列表只保留指定区间内的元素,不在区间内的元素都将被删除。
RPOP key,移除列表的最后一个元素,返回值为移除的元素
RPUSH key value,将一个值插入到列表的尾部
RPUSHX key value,将一个值插入到已存在列表的尾部
...

1.4 Set

Set是string类型的无序集合,集合中的成员不可重复。

常用命令:

SADD key memeber[meember1],向集合中添加一个或多个元素
SCARD key,获取集合的成员数量
SDIFF key1 [key2],返回第一个集合与其他集合的差异,可以认为是第一个集合中独有的元素
SDIFFSTORE destination key1[key2],将差异的值报错到destination中
SINTER key1[key2],返回给定集合的交集
SINTER destination key1[key2],返回给定集合的交集并保存到destination中
SISMEMBER key member,判断集合中是否存在member元素
SMEMBERS key,返回集合中的所有元素
SMOVE source destination member,将元素member从source集合中移动到destination集合中
SPOP key,移除并返回集合中的一个随机元素
SRANDMEMBER key[count],返回集合中一个或多个随机成员
SUNION key1[key2
### Redis 6 的最新版本特性与更新内容 Redis 6 是 Redis 发展中的一个重要里程碑,它引入了许多新的特性和改进。以下是关于 Redis 6 的一些重要特性的详细介绍: #### 多线程 I/O 支持 尽管 Redis 历史上一直以其高性能的单线程模型著称,但在 Redis 6 中,为了应对日益增长的网络带宽需求,其在网络 IO 方面引入了多线程的支持[^2]。具体来说,Redis 将网络数据的读取和写入操作分配给多个工作线程来完成,从而显著提升了在高并发场景下的性能表现。 值得注意的是,虽然 Redis 6 实现了多线程处理网络通信的功能,但是核心的数据结构操作仍然保持单线程模式以确保一致性。这种设计既保留了原有架构的优势又解决了部分性能瓶颈问题。 #### ACL(Access Control List) 另一个重大的新增功能就是访问控制列表(Access Control Lists)[^4]。通过这一机制可以更精细地管理不同用户的权限范围,比如允许某些特定命令只由指定角色执行等。这极大地增强了系统的安全性并满足更多复杂环境下的应用需求。 #### Client Side Caching (客户端缓存) 此外,在提高效率方面还有一项创新技术叫做Client Side Caching(客户端侧缓存),它可以减少不必要的往返延迟时间以及降低服务器负载压力。基本原理是在第一次查询成功后保存结果于本地存储之中直到收到过期消息为止;一旦检测到任何更改,则立即清除对应条目以便后续重新加载最新的副本回来。 #### 其他优化调整 除了上述提到的主要革新之外还有不少细节上的改良之处值得留意: - **更好的监控工具**:增加了更多的统计指标帮助运维人员更好地理解当前运行状况; - **TLS加密连接支持**:使得敏感信息传输更加安全可靠; - **提升稳定性和兼容性**等等... 综上所述可以看出,随着这些先进理念和技术手段的应用落地,不仅让整个平台变得更加灵活高效同时也兼顾到了实际使用的便利程度考量因素在里面。 ```python import redis # 创建一个Redis实例,默认连接至localhost:6379 r = redis.Redis() # 设置键值对 r.set('foo', 'bar') # 获取对应的值 value = r.get('foo') print(value.decode()) # 输出 bar ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值