Redis学习笔记

本文详细介绍了Redis的各种数据类型,包括字符串、散列、列表、集合和有序集合,以及各自的操作命令。同时,文章涵盖了Redis的多数据库、基本命令、事务、非事务型流水线、过期时间、排序、队列应用、脚本、持久化策略(RDB和AOF)、复制模式和哨兵模式。此外,还讨论了Redis在实际应用中的分布式锁、计数信号量和内存优化策略。
摘要由CSDN通过智能技术生成

redis中所有单个命令的执行都是原子性的,但是不保证多个命令间的原子性。

Redis的多数据库

在redis中一个redis实例提供了多个用来存储数据的字典(又称数据库),客户端可以指定将数据存储在哪个字典中。redis默认支持16个数据库,数据库命名从0开始递增。

Redis基本命令

介绍基本命令之前我们先来看下redis中常用的通配符。
在这里插入图片描述

KEYS命令

查询符合匹配规则的键,但是keys命令需要遍历所有的键,当键较多时会影响性能,不建议在生成环境中使用。

EXISTS命令

判断一个键是否存在,存在返回1,否则返回0。

DEL命令

删除一个或多个键,返回值时删除的键的个数。
在这里插入图片描述

TYPE命令

获得键值的数据类型。

HELP命令

查询其它命令。

Redis数据类型

字符串类型

能够存储任何形式的字符串,一个字符串类型键允许存储的数据的最大容量为512MB。字符串类型时其它四种数据类型的基础。

常用命令

set key value:设置键值对
get key: 获取指定键的值,不存在返回空
incr key:递增指定键的值,指定键的值必须是整数否则会报错
incrby key increment:指定的键增加increment
decr key:递减指定键的值
decrby key decrement:指定的键减小decrement
append key value:向指定键尾部追加值
strlen key:获取指定键的值的长度
mget key、mset key value:获取、设置多个键值

散列类型

散列类型(hash)的键值也是一种字典结构,存储了字段(field)和字段值的映射,字段值只能是字符串,不支持其他数据类型嵌套。一个散列类型键可以包含至多2^32 - 1(大约42亿)个字段,散列类型有散列组成。

常用命令

hset key field value:设置field-value键值对
hget key field:获取指定field字段的值
hmset / hmget key field value:批量设置/获取field-value
hgetall key:获得key键下所有的field-value
hexits key field:判断字段是否存在
hset key field:只有当field字段不存在时才会赋值
hincrby key field increment:给指定字段的值加increment
hdel key field:删除指定字段
hkeys key / hvals key:获取所有字段名 / 字段值
hlen key:获取字段数量

列表类型

列表类型(list)存储一个有序的字符串列表,列表类型内部是由一个双向链表实现的。**借助列表类型,redis还可以作为队列或者栈使用。**由于列表类型是基于双向链表实现的,所有访问链表两端的数据效率高,当时当数据很多时访问中间的元素效率不高。

常用命令

lpush / rpush key value:向列表左边 / 右边添加元素,支持一次性添加多个数据
lpop / rpop key:从列表左边 / 右边取出元素,同时将列表中的数据一处,并返回被移除的值
llen key:获取列表的长度,redis有记录列表的长度,无需获取时遍历列表
lrange key start stop:获取列表的子列表,包含两端的元素
lrem key count value:删除列表中指定的值,count表示要删除值为value的元素的个数,count.>0表示从左边开始,count<0表示从右边开始,count=0表示删除所有的
lindex key index:获得指定索引的值
lset key index value:设置指定索引的值
ltrim key start end:只保留指定范围列表的值
linsert key before | after pivot value:在列表中pivot元素前或后插入元素
rpoplpush source destination:从列表右边弹出一个元素到指定列表中(将元素从一个列表转移到另一个列表)

集合类型

一个集合类型(set)键可以存储至多2^32 - 1(大约42亿)个字符串,集合类型是无序性、唯一性的,适合需要单独添加或删除的场景。

常用命令

sadd key meumber:添加元素,支持添加多个元素
srem key member:删除元素,支持删除多个元素
smembers key:获取集合中所有的元素
sismember key member:判断集合中元素是否存在
sdiff setA setB:求多个集合的差集
sinter setA setB:求多个集合的交集
sunion setA setB:求多个集合的并集
scard key:获得集合中元素的个数
sdiffstore / sinterstore / sunionstore destination key:进行集合运算并将结果存储到目的集合<

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
尚硅谷是一个教育机构,他们提供了一份关于Redis学习笔记。根据提供的引用内容,我们可以了解到他们提到了一些关于Redis配置和使用的内容。 首先,在引用中提到了通过执行命令"vi /redis-6.2.6/redis.conf"来编辑Redis配置文件。这个命令可以让你进入只读模式来查询"daemonize"配置项的位置。 在引用中提到了Redis会根据键计算出应该送往的插槽,并且如果不是该客户端对应服务器的插槽,Redis会报错并告知应该前往的Redis实例的地址和端口。 在引用中提到了通过修改Redis的配置文件来指定Redis的日志文件位置。可以使用命令"sudo vim /etc/redis.conf"来编辑Redis的配置文件,并且在文件中指定日志文件的位置。 通过这些引用内容,我们可以得出结论,尚硅谷的Redis学习笔记涵盖了关于Redis的配置和使用的内容,并提供了一些相关的命令和操作示例。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Redis学习笔记--尚硅谷](https://blog.csdn.net/HHCS231/article/details/123637379)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Redis学习笔记——尚硅谷](https://blog.csdn.net/qq_48092631/article/details/129662119)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值