Redis的学习

本文深入介绍了Redis作为高效键值存储系统的特性和优势,包括其丰富的数据类型、高性能、原子操作、丰富特性以及内存优化策略。同时,阐述了Redis的事务机制、数据恢复方法和主从复制功能,旨在提供全面的Redis使用指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


Redis的介绍:

1. Redis是Remote Dictornary Server的缩写,是一个key value存储系统.


2. Redis提供了丰富的数据结构,包括Strings,Lists,Hashes,Sets和Ordered Sets以及Hashes.包括对这些数据结构的操作支持.


3. Redis可以代替Memcache,并且解决了断电后数据完全丢失的问题.


Redis的优点:

1.性能极高,支持10W每秒的读写频率.


2.丰富的数据类型及对应的操作.


3.Redis的操作都是原子性的,同时还支持对几个操作全并后的原子性执行,也即支持事务.


4.丰富的特性,还支持publish/subscribe,key过期等特性.

Redis的安装:

登入官网http://redis.io,可以下载Redis。

下载完后解压然后就可以看到一系列的文件。其中

redis-server.exe文件用来启动redis服务器 带一个参数配置文件名来启动服务器。如

redis-server.exe  redis.conf

启动后

执行另一个redis-cli.exe的文件来开启客户端

redis-cli.exe -h 127.0.0.1 -p 6379 -a password

参数h为指定的redis服务器的ip  参数p是指定的端口号 参数-a则是通过密码验证,如果服务器设置了密码登入鉴权的话,默认不需要。

如果英文好的话,就请一定要看一下redis.conf里的配置说明,那里的每个参数都有明确的说明用法和用途。对性能调优有很大的帮助。


Redis常用的五种数据类型

1 String  

2 hash

3 list

4 set

5 sort set

这些数据类型有对应的操作命令,详情可以到官网学习http://redis.io。


Redis内存优化:

设置redis.conf配置文件中下面2项:
hash-max-zipmap-entries 64
hash-max-zipmap-value 512

hash-max-zipmap-entries 含义是当value这个Map内部不超过多少个成员时会采用线性紧凑格式存储,默认是64,即value内部有64
个以下的成员就是使用线性紧凑存储,超过该值自动转成真正的HashMap.


hash-max-zipmap-value 含义是当value这个Map内部的每个成员值长度不超过多少字节就会采用线性紧
凑存储来节省空间.

如何设置好这两个参数 需要从时间和空间两个维度去衡量,在数据量不大且不影响性能的情况下可以把这两个参数值调大,可以节省不少的内存空间,

因为线性存储在查询和操作的时间复杂度为O(n)而HashMap的时间复杂度为O(1)。


Redis事务:

MULTIEXECDISCARD and WATCH are the foundation of transactions in Redis.

涉及事务的命令主要有 MULTI,EXEC,DISCARD,WATCH

MULTI:事务声明命令,接下来的命令将会放到一个队列里,作为一个原子来操作。

EXEC:事务执行命令,把队列中的命令都执行

DISCARD:取消事务不执行事务声明后到该命令之间的所有命令

WATCH:给事务加锁的命令,这个是个乐观锁,就行Hibernate中的version的用法一样,对应的值改变了则,该事物就不能执行。

当一个事务执行一半时,客户端挂了,那么怎么办,这个就要回到之前说的redis.conf,配置一个参数appendonly yes  那么在事务执行之前所有的命令会追加到一个aof的文件中,使用工具 redis-check-aof 来修复这个问题


Redis数据恢复:

1. 如果配置了AOF,重启时加载AOF文件恢复数据.
2. 如果配置了RBD和AOF,启动时只加载AOF文件恢复数据.
3.如果只配置了RBD启动动时将加载dump文件恢复数据.

Redis主从复制:

slave的配置只需在redis.conf配置中配置参数slaveof

slaveof  IP  port 

用途读写分离,数据备份,灾难恢复等


目前较好的方案是:Mater关闭Save功能,关
闭AOF日志功能,以求达到性能最佳. Slave开启
Save并开启AOF日志功能,并开启bgrewriteaof
功能,不对外提供服务,这样Slave的负载总体上
会一直略高于Master负载,但Master性能达到最
好.








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值