Redis学习笔记

  • Redis是一个远程内存数据库,复制特性和提供了不同类型的数据结构,非关系数据库可以存储键和五种不同类型的值之间的映射,可以将存储在内存的键值对数据持久化到硬盘,可以使用复制特性来扩展读性能,使用客户端分片来扩展写性能,用户可以将Redis扩展成一个能够包含数百GB数据,上百万TPS的系统。
  • Redis不使用表,也不会预定义或强制去要求用户对Redis存储的数据进行关联。
  • Memcached和Redis的区别:两种都可用于键值映射;但Redis能自动以两种不同方式将数据写入硬盘,并且除了能存储普通的字符串键之外,还能存储其它4中数据结构,而Memcached只能存储普通的字符创键。使用Redis使得代码更简洁易懂和维护,并且使得代码的运行速度更快(不需要通过读取数据库来更新数据)。
  • 如果程序对性能要求不高又或因为内存原因而无法将大量数据存储在内存中,那么用户就可能会选择关系数据库,并考虑将Redis作为主存储还是辅助存储。
  • Redis两种持久化方法:时间点转储和将所有修改了数据库的命令都写入到一个只追加文件中,用户可以根据数据的重要程度,将只追加设置为不同步,每秒同步一次或每写入一个命令就同步一次。
  • 为了扩展Redis的读性能,并为Redis提供故障转移支持,Redis实现了主从复制特性:执行复制的从服务器会连接上主服务器,接收主服务器发送的整个数据库的初始副本,并且主服务器执行的写命令都会被发送给所有连接着的从服务器去执行,从而实时更新从服务器的数据集。
  • 通常而言,数据库的插入行的方式来存储数据速度非常快(因为插入行只会在硬盘文件末尾进行写入),不过对表中行进行更新的速度很慢(因为这种更新除了会引起一个随机读之外还可能会引起一次随机写)。因为Redis将数据存储在内存中,并且发送给Redis的命令请求并不需要经过典型的查询分析器或查询优化器进行处理,所以对Redis存储的数据执行随机写的速度很快。
  • Redis提供的五种数据结构类型分别是:STRING/LIST/SET/HASH/ZSET。
  • 在Redis服务上执行命令需要一个Redis客户端;Redis键命令用于管理redis键,包括DEL、EXISTS、DUMP(序列化给定key)、EXPIRE(为给定key设置过期时间)、KEY pattern(查找所有符合模式的key)、PERSIST key(移除key的过期时间,key将永久保持)、TTL(返回key的剩余存活时间)、RANDOMKEY(从当前数据库中随机返回一个key)、RENAME(修改key的名称)、TYPE(返回key所存储值的类型)。
  • Redis字符串命令:SET、GET、GETRANGE、GETSET、GETBIT/SETBIT(对key所存储的字符串值,返回指定偏移量上的位)、MGET/MSET(获取一个或多个给定key的值)、STRLEN(获取key的字符串长度)、INCR/INCRBY/DECR(增加key中存储数字)、APPEND。
  • Hash命令:HDEL key fied1 [field](删除一个或多个哈希表字段)、HEXISTS、HGET、HGETALL(获取哈希表中指定key的所有字段和值)、HINCRBY、HKEYS(获取哈希表中所有字段)、HLEN(获取哈希表中字段的数量)、HMGET、HSET、HVALS、HSCAN key cursor [pattern] [count](迭代哈希表中的键值对)。
  • 列表命令:BLPOP/BRPOP/BRPOPLPUSH/LINDEX(通过索引获取列表中的元素)/LLEN/LINSERT key BEFORE|AFTER pivot value/LPOP/LPUSH/LRANGE/LREM(移除列表元素)/LTRIM。
  • Redis的SET集合是通过哈希表来实现的:SADD/SCARD(获取集合的成员数)/SDIFF(差集)/SDIFFSTORE(将差集存储)/SINTER/SISMEMBER key member(判断member元素是否是集合key的成员)/SMEMBERS/SMOVE/SREM/SUNION。
  • Redis有序集合不同在于每个元素都会关联一个double类型的分数,从小到大:ZADD/ZCARD/ZCOUNT/ZSCORE。
  • Redis发布订阅命令:PUBLISH channel msg(将信息发送到指定频道)、SUBSCRIBE/UNSUBSCRIBE、PSUBSCRIBE pattern [pattern]。
  • 事务命令:MULTI(标记一个事务块的开始)、EXEC(执行事务块中的命令)、DISCARD、WATCH/UNWATCH。
  • Redis管道技术可以在服务端未响应时,客户端可以继续想服务端发送请求,并最终一次性读取所有服务端响应——显著的提高了redis服务的性能。
  • Redis分区是分割数据到多个Redis实例的处理过程,因此每个实例只保存key的一个子集;Redis有两种类型的分区:范围分区和哈希分区;分区的不足:涉及到多个key的操作通常不被支持,涉及到多个key的redis事务不能使用,增减容量复杂。


  • Redis相对于其他key-value缓存产品的特点:
    • Redis运行在内存中,支持数据的持久化,可以将内存中的数据保存在磁盘中;
    • Redis除了支持简单的key-value类型的数据,同时还提供list、set、zset、hash等数据结构;
    • Redis支持数据的备份,即master-slave模式的数据备份;
    • Redis所有操作都是原子的;
    • 性能极高,丰富的特性(发布/订阅等)。
  • 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、付费专栏及课程。

余额充值