Redis详细使用

文章目录

  1. Redis是什么,有什么特点,用于哪些场景?
  2. Redis常用的5种数据类型简单介绍以及操作
  3. Redis常用命令
  4. Redis事务的使用
  5. Redis持久化的2种方式

1.Redis是什么,有什么特点,用于哪些场景?

  1. Redis底层使用C语言编写,是一个非关系型数据库
  2. 采用键值对的结构存取存取数据,常见的非关系型数据库模型的一种(列模型、键值对模型、文档模型),类似于Java的HashMap,因此在查找和操作的复杂度都是O(1)
  3. 数据存在内存中,支持持久化,拥有丰富的数据类型(string、hash、set、sorted set、list)
  4. 支持事物,操作都是原子性,所有要么全部执行,要么都不执行
  5. 可用于缓存服务、消息队列、分布式锁、分布式session

2. Redis常用的5种数据类型简单介绍以及操作

  1. String:可存储int、float、string,其中int类型可以增减操作
192.168.1.84:0>select 0    //选择数据库
"OK"
192.168.1.84:0>set string1 'Hellow Word'   //赋值语法:set key value
"OK"
192.168.1.84:0>get string1  //查看语法:get key
“Hellow Word”
192.168.1.84:0>set string2 0
"OK"
192.168.1.84:0>incr string2
"1"
192.168.1.84:0>get string2
"1"
192.168.1.84:0>decrby string2 1
"0"
192.168.1.84:0>get string2
"0"
192.168.1.84:0>set string3 2.5
"OK"
192.168.1.84:0>get string3
"2.5"
  1. List:list是一个有序列表,允许数据重复,可用于消息队列
192.168.1.84:0>select  1 
"OK"
192.168.1.84:1>lpush lists 11   //在lists表头插入数据
"1"
192.168.1.84:1>lpush lists 12
"2"
192.168.1.84:1>lpush lists 11
"3"
192.168.1.84:1>llen lists     //获取lists长度
"3"
192.168.1.84:1>rpop lists    //弹出lists最后一个节点
"11"
  1. Set:set是一个无序列表,不允许数据重复
192.168.1.84:0>sadd set1 10   //添加set1元素
"1"
192.168.1.84:0>sadd set1 11
"1"
192.168.1.84:0>sadd set1 8
"1"
192.168.1.84:0>sadd set1 8  //不允许重复数据
"0"
192.168.1.84:0>scard set1   //set的长度
"3"
192.168.1.84:0>sismember set1 8查看set1中是否存在8
"1"
192.168.1.84:0>srem set 8
"0"
  1. Hash:hash是一个无序列表,不允许数据存在同一个key,散列类型
192.168.1.84:0>hset hash1 key1 1   //给hash1的key赋值		
"1"
192.168.1.84:0>hget hash1 key1   //查看hash1中的key
"1"
192.168.1.84:0>hset hash1 key2 2
"1"
192.168.1.84:0>hset hash1 key3 3
"1"
192.168.1.84:0>hlen hash1   //查看hash1的长度
"3"
192.168.1.84:0>hset hash1 key1 1
"0"
192.168.1.84:0>hmget hash1 key1 key2 key3   //查看hash1中多个key
1) "1"
2) "2"
3) "3"
  1. ZSet:Zset是一个自动按数据大小自动排序,不允许数据重复数据
192.168.1.84:0>zadd zset1 1.1 var1   //在zset1中添加变量并赋值
"1"
192.168.1.84:0>zadd zset1 2.1 var3 
"1"
192.168.1.84:0>zadd zset1 9.2 var2
"1"
192.168.1.84:0>zadd zset1 1.2 var2  //覆盖var2的值
"0"
192.168.1.84:0>zrange zset1 0 2 withscores //数据下标0到2的数据
1) "var1"
2) "1.1000000000000001"
3) "var2"
4) "1.2"
5) "var3"
6) "2.1000000000000001"
192.168.1.84:0>zrank zset1 var2   //查看var2所在zset1的下标
"1"
192.168.1.84:0>zcard zset1		//查看zset1的长度
"3"

Redis常用命令

192.168.1.84:0>keys *   //查看数据库0所有key
1) "set1"
2) "zset1"
3) "hash1"
192.168.1.84:0>type set1  //查看key的类型
"set"
192.168.1.84:0>move set1 1  //将key移动至数据库1
"1"
192.168.1.84:0>keys *
1) "zset1"
2) "hash1"
192.168.1.84:0>select 1   //定位到数据库1
"OK"
192.168.1.84:1>keys set1
1)"set1"
192.168.1.84:1>del set1   //删除key
"1"

4.Redis事务的使用

  1. multi 标记一个事务的开启 ,类似于begin transcation
  2. exec 执行所以事务块的命令,类似commit transcation
  3. discard 取消事务,放弃执行事务块内的所有命令,类似于rollback transcation
  4. 事务中的命令都是串行执行的
  5. 事务执行期间redis不会再对其他的客户端提供任何服务,从而保障事务中的命令原子化执行
192.168.1.84:0>multi    //开启事务,期间服务不对外提供服务
"OK"

192.168.1.84:0>set string1 'begin transcation'   
"QUEUED"

192.168.1.84:0>get string1
"QUEUED"

192.168.1.84:0>exec   //提交上述的执行命令,如果报错事务取消
1) "OK"
2) "begin transcation"

192.168.1.84:0>multi   //开启事务,期间服务不对外提供服务
"OK"

192.168.1.84:0>set string1 'update value'
"QUEUED"

192.168.1.84:0>discard   //取消事务,不提交上述的执行命令
"OK"

192.168.1.84:0>get string1
"begin transcation"

5.Redis持久化的2种方式

redis默认采用RDB持久化方式

  1. redis在运行期间,将满足条件的数据存入到rdb文件中
  2. 当redis宕机发生是,直接拷贝rdb文件进行使用就行
  3. redis开始持久化的使用,会创建一些子进程,帮助加载数据
  4. 如果redis忽然宕机,一些创建没有多久的数据,并没有满足条件,会丢失
  5. redis通过开启子进程来帮助数据持久化,在大量数据集的情况下,肯导致服务器停顿
  6. 数据需要满足以下redis-conf配置中的条件,才能进行持久化
  save 900 1           //900秒中至少1个key发送变化,才能进行持久化
  save 300 10          //300秒中至少10个key发送变化,才能进行持久化
  save 60 10000        //10000秒中至少60个key发送变化,才能进行持久化
  1. redis中配置了文件名称和地址分别是
  dbfilename dump.rdb  //文件名称
  dir ./  			   //文件地址

AOF持久化方式

  1. 支持3种同步策略,每秒同步,每修改同步,不同步
  appendfsync always  	//每秒同步
  appendfsync everysec  //每修改同步 
  appendfsync no        //不同步 
  1. 采用append追加模式,数据写入AOF日志完整
  2. 如果AOF日志过大,redis可以自动启动重写机制,将修改的数据写入到磁盘当中
  3. AOF包含一个格式非常清晰易于理解的日志文件,用于记录所有的修改操作。通过这个文件就可以完成数据的重建
  4. AOF持久化性能小于RDB,并且文件大小大于RDB
  5. 更换方式,修改redis-conf内容,如下
appendonly yes
appendfilename "appendonly.aof"

推荐文章

  1. Redis入门:https://blog.csdn.net/xgangzai/article/details/82661940
  2. Redis进阶:https://blog.csdn.net/xgangzai/article/details/82687552
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图像识别技术在病虫害检测中的应用是一个快速发展的领域,它结合了计算机视觉和机器学习算法来自动识别和分类植物上的病虫害。以下是这一技术的一些关键步骤和组成部分: 1. **数据收集**:首先需要收集大量的植物图像数据,这些数据包括健康植物的图像以及受不同病虫害影响的植物图像。 2. **图像预处理**:对收集到的图像进行处理,以提高后续分析的准确性。这可能包括调整亮度、对比度、去噪、裁剪、缩放等。 3. **特征提取**:从图像中提取有助于识别病虫害的特征。这些特征可能包括颜色、纹理、形状、边缘等。 4. **模型训练**:使用机器学习算法(如支持向量机、随机森林、卷积神经网络等)来训练模型。训练过程中,算法会学习如何根据提取的特征来识别不同的病虫害。 5. **模型验证和测试**:在独立的测试集上验证模型的性能,以确保其准确性和泛化能力。 6. **部署和应用**:将训练好的模型部署到实际的病虫害检测系统中,可以是移动应用、网页服务或集成到智能农业设备中。 7. **实时监测**:在实际应用中,系统可以实时接收植物图像,并快速给出病虫害的检测结果。 8. **持续学习**:随着时间的推移,系统可以不断学习新的病虫害样本,以提高其识别能力。 9. **用户界面**:为了方便用户使用,通常会有一个用户友好的界面,显示检测结果,并提供进一步的指导或建议。 这项技术的优势在于它可以快速、准确地识别出病虫害,甚至在早期阶段就能发现问题,从而及时采取措施。此外,它还可以减少对化学农药的依赖,支持可持续农业发展。随着技术的不断进步,图像识别在病虫害检测中的应用将越来越广泛。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值