丽水 网站建设,百度竞价是什么意思,深圳网站建设有市场吗,wordpress动态导航文章目录 云服务器的类型云服务优点redis一#xff0c;关系型数据库#xff08;sqlserver#xff0c;mysql#xff0c;oracle#xff09;的事务隔离机制说明#xff1a;redis事务机制 lualua脚本好处#xff1a;一#xff0c;怎么在redis中使用lua脚本二#xff0c;脚… 文章目录 云服务器的类型云服务优点redis一关系型数据库sqlservermysqloracle的事务隔离机制说明redis事务机制 lualua脚本好处一怎么在redis中使用lua脚本二脚本内容比较多我们可以创建一个脚本文件。把脚本内容写入文件中。三脚本文件上传到redis中然后仍然在交换模式中执行这个脚本。 云服务器的类型
云服务器类型分为三种公有云服务器私有云服务器专用云服务器
公有云服务器公有云服务器具有成本效益、弹性扩展、可靠性、高可用性、管理简便、安全性、全球化服务和技术支持等优势适用于各种规模和类型的企业和个人需求。
私有云服务器私有云服务器是一种用于构建和管理私有云环境的服务器。它可以提供类似于公有云的弹性计算、存储和网络资源但是这些资源完全掌控在用户自己的控制下。私有云服务器可以部署在用户自己的数据中心。使用私有云服务器可以满足一些特定需求例如企业有对数据安全性和隐私性的特别要求对公有云环境不太适应。
专用云服务器专用云服务器提供了许多优势包括更高的性能和可扩展性、更高的安全性和隐私性以及更大的灵活性和控制权。客户可以根据自己的需求自定义和管理专用云服务器包括操作系统、应用程序和网络配置等。
云服务优点
成本效益云服务允许企业根据需求动态地增加或减少计算资源避免过度投资设备和维护费用降低运营成本。易于管理和维护云服务提供商通常具有强大的技术团队和经验可以为企业提供技术支持和维护服务减轻企业管理和维护负担。灵活性和可扩展性在云计算环境中资源是按需分配的企业可以根据需要随时添加或删除计算资源以适应业务增长或下降的需要。安全性云服务提供商通常具有专门的安全措施来保护用户的数据和隐私例如备份、加密、网络隔离等同时由于云计算服务集中在一个地方采取统一的安全措施能够更有效地保护企业的数据安全。全球化服务云服务提供商在全球范围内建立了多个数据中心可以提供全球化的服务满足用户在不同地域的业务需求实现全球范围内的数据传输和访问。技术支持云服务提供商通常提供全天候的技术支持和服务用户可以随时获得专业的帮助和解决方案提高了用户使用公有云服务器的便利性和可靠性。
redis
一关系型数据库sqlservermysqloracle的事务隔离机制说明
下面是设置mysql数据库事务隔离机制的sql语句 set global transaction isolation level read uncommitted; 下面是事务隔离的几个机制
read uncommitted读取未提交的数据 缺点如果数据最终rollback了那么读取的数据就错误了read committed读取已提交的数据 缺点如果在一个事务中对通过一个数据进行了多次的读取。在多次读取的过程中有人提交数据。那么多次读取的数据结果就会出现不一致repeatable read重复读 缺点会出现幻读serializable串行 缺点太慢
redis事务机制
MULTI与EXEC命令 以MULTI开始一个事务然后将多个命令入队到事务中最后由EXEC命令触发事务一并执行事务中的所有命令DISCARD命令 DISCARD命令用于取消一个事务她清空客户端的整个事务队列然后将客户端从事务状态调整回非事务状态最后返回字符串OK给客户端说明事务已被取消。
乐观锁一个版本控制 update table set age13 where v1 悲观锁
WATCH(类似乐观锁 WATCH命令用于在事务开始之前监视任意数量的键当调用EXEC命令执行事务时如果任意一个被监视的键已经被其他用户端修改了那么整个事务不再执行直接返回失败。
例子一这个例子中没有出现异常所以所有的命令都成功了。 例子二这个例子中在事务开启后有一个命令执行出错了那么所有的命令都不会执行 例子三这个例子中出现了两个事务两个事务都表示自己执行成功了但是有一个发现值并不是自己设置的被别人覆盖了。 例子四加上Wathch age后再来执行事务。 左边的在开启事务之后exec执行之前右边有另外一个事务对age进行改进。那么左边的事务将执行失败
lua
lua脚本好处
减少网络开销。可以将多个请求通过脚本的形式一次发送减少网络时延。原子操作。redis会将整个脚本作为一个整体执行中间不会被其他命令插入。因此在编写脚本过程中无需担心会出现竟态条件无需使用事务。复用。客户端发送的脚本会永久存在redis中这样其他客户端可以复用这一变量类型声明变量。控制语句循环语句。函数
一怎么在redis中使用lua脚本
命令格式 EVAL script numkeys key [key…] arg [arg…] 说明
script 是第一个参数为lua5.1脚本。该脚本不需要定义Lua函数也不应该第二个参数numkeys指定后续参数有几个keykey [key…]是要操作的键可以指定多个在lua脚本中通过KEYS[1]KEYS[2]获取arg [age…]参数在lua脚本中通过ARGV[1]ARGV[2]获取。
使用eval命令 简单示例
eval return ARGV[1] 0 100eval return {ARGV[2],ARGV[1]} 0 100 200eval return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]} 2 key1 key2 first second上面是使用EVAL命令执行lua脚本的简单示例没有和redis结合起来。 下面我们使用redis.call来执行redis的命令。 说明…是字符串连接符。local是声明一个局部变量
eval local val ARGV[1].. ..redis.call(get,KEYS[1]) return val 1 age niuniu二脚本内容比较多我们可以创建一个脚本文件。把脚本内容写入文件中。
注意
这里执行脚本文件不是在交互模式下执行的。 先创建一个脚本文件在/home目录下
# touch test01.lua通过vi命令把脚本内容写进去 执行找个脚本注意前后的空格
# ./redis-cli -a 123456 --eval /usr/local/src/redis6/lua/test01.lua age , xiaolin三脚本文件上传到redis中然后仍然在交换模式中执行这个脚本。
上传脚本返回一个hash值f52a1be1e0dc6ce2813d1890a39dc993cab5527b 在交换模式中使用EVALSHA命令执行脚本
EVALSHA f52a1be1e0dc6ce2813d1890a39dc993cab5527b 1 age xiaozh