加入收藏 | 设为首页 | 会员中心 | 我要投稿 莆田站长网 (https://www.0594zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 动态 > 正文

量子计算是什么?

发布时间:2021-02-07 15:26:26 所属栏目:动态 来源:互联网
导读:如果你是一个有经验的后端或者服务器开发,那么一定听说过Redis,其全称叫Remote Dictionary Server。是由C语言编写的基于Key-Value的存储系统。说直白点就是一个内存数据库,既然是内存数据库就会遇到如果服务器意外宕机造成的数据不一致的问题。 这跟很多

如果你是一个有经验的后端或者服务器开发,那么一定听说过Redis,其全称叫Remote Dictionary Server。是由C语言编写的基于Key-Value的存储系统。说直白点就是一个内存数据库,既然是内存数据库就会遇到如果服务器意外宕机造成的数据不一致的问题。

这跟很多游戏服务器也是一样的,感兴趣的可以参考我之前的文章游戏服务器和Web服务器的区别。其数据首先会流向内存,基于快速的内存读写来实现高性能,然后定期将内存的数据中的数据落地。Redis其实也是这么个流程,基于快速的内存读写操作,单机的Redis甚至能够扛住10万的QPS。

Redis除了高性能之外,还拥有丰富的数据结构,支持大多数的业务场景。这也是其为什么如此受欢迎的原因之一,下面我们就来看一看Redis有哪些基础数据类型,以及他们底层都是怎么实现的。

1. 数据类型

其基础数据类型有String、List、Hash、Set、Sorted Set,这些都是常用的基础数据类型,可以看到非常丰富,几乎能够满足大部分的需求了。其实还有一些高级数据结构,我们在这章里暂时先不提,只聊基础的数据结构。

2. String

String可以说是最基础的数据结构了, 用法上可以直接和Java中的String挂钩,你可以把String类型用于存储某个标志位,某个计数器,甚至狠一点,序列化之后的JSON字符串都行,其单个key限制为512M。其常见的命令为get、set、incr、decr 、mget。

2.1 使用

  • get 获取某个key,如果key不存在会返回空指针
  • set 给key赋值,将key设置为指定的值,如果该key之前已经有值了,那么将被新的值给覆盖
  • incr 给当前的key的值+1,如果key不存在则会先给key调用set赋值为0,再调用incr。当然如果该key的类型不能做加法运算,例如字符串,就会抛出错误
  • decr 给当前key的值-1,其余的同上
  • mget 同get,只是一次性返回多条数据,不存在的key将会返回空指针
使用新写法

这里的新写法不是指有多厉害,而是指我们可能更希望使用较新引入的一些语法,更多是偏向代码风格的,比如

尽量使用func(){}来定义函数,而不是func{}

尽量使用[[]]来代替[]

尽量使用$()将命令的结果赋给变量,而不是反引号

在复杂的场景下尽量使用printf代替echo进行回显

事实上,这些新写法很多功能都比旧的写法要强大,用的时候就知道了。

其他小tip

考虑到还有很多零碎的点,就不一一展开了,这里简单提一提。

路径尽量保持绝对路径,绝多路径不容易出错,如果非要用相对路径,最好用./修饰

优先使用bash的变量替换代替awk sed,这样更加简短

简单的if尽量使用&& ||,写成单行。

比如[[ x > 2]] && echo x

当export变量时,尽量加上子脚本的namespace,保证变量不冲突

(编辑:莆田站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读