键值

运维工程师面试题(三)-Redis

空扰寡人 提交于 2019-11-26 20:39:08
Redis面试题 1)什么是Redis? Redis是一个开源的高级键值数据存储和缓存。它也被称为数据结构服务器,其键不仅包含字符串,还包含哈希,集合,列表和有序集。 2)Redis是什么意思? Redis代表REmote DIctionary Server。 3)Redis与其他数据库有何不同? Redis是一个NoSQL,Opensource,内存数据结构存储。它遵循键值存储的原则。 它非常快速,持久,可移植,支持多种语言,如C,C ++,C#,Clojure,Common Lisp,D,Dart,Erlang,Go,Haskell,Haxe,Io,Java,JavaScript(Node.js),Julia, Lua,Objective-C,Perl,PHP,纯数据,Python,R,球拍,Ruby,Rust,Scala,Smalltalk和Tcl。 Redis与其他Key-Value存储 键值存储是一种特殊类型的数据库存储系统,其中数据以键和值对的形式存储。 与其他键值存储相比,Redis与以下内容不同: Redis是键值数据库中不同的演化路径,其中值可以包含更复杂的数据类型,并在这些数据类型上定义原子操作。 Redis数据类型与基本数据结构密切相关,并且无需额外的抽象层即可向程序员公开。 Redis是一个内存但持久的磁盘数据库,因此它代表了一种不同的折衷方案

树-伸展树(Splay Tree)

帅比萌擦擦* 提交于 2019-11-26 14:58:14
伸展树概念 伸展树(Splay Tree)是一种二叉排序树,它能在O(log n)内完成插入、查找和删除操作。它由Daniel Sleator和Robert Tarjan创造。 (01) 伸展树属于二叉查找树,即它具有和二叉查找树一样的性质:假设x为树中的任意一个结点,x节点包含关键字key,节点x的key值记为key[x]。如果y是x的左子树中的一个结点,则key[y] <= key[x];如果y是x的右子树的一个结点,则key[y] >= key[x]。 (02) 除了拥有二叉查找树的性质之外,伸展树还具有的一个特点是:当某个节点被访问时,伸展树会通过旋转使该节点成为树根。这样做的好处是,下次要访问该节点时,能够迅速的访问到该节点。 假设想要对一个二叉查找树执行一系列的查找操作。为了使整个查找时间更小,被查频率高的那些条目就应当经常处于靠近树根的位置。于是想到设计一个简单方法,在每次查找之后对树进行重构,把被查找的条目搬移到离树根近一些的地方。伸展树应运而生,它是一种自调整形式的二叉查找树,它会沿着从某个节点到树根之间的路径,通过一系列的旋转把这个节点搬移到树根去。 相比于"二叉查找树"和"AVL树",学习伸展树时需要重点关注是"伸展树的旋转算法"。 伸展树实现 伸展树的节点包括的几个组成元素: (01) key -- 是关键字,是用来对伸展树的节点进行排序的。 (02)

es6之Set和Map

不羁岁月 提交于 2019-11-26 14:45:15
一. Set 类似数组,成员值唯一,var s = new Set() s加入值用add,加入时不会发生类型转换(判断两值是否相等用的 ===,但Set会认为NaN等于自己) Set.prototype.constructor === Set , Set.prototype.size返回Set实例的成员总数 delete删除某个值,has返回布尔值,clear清空实例 keys返回键名的遍历器,values返回键值的遍历器,entries返回键值对的遍历器, Set.prototype[Symbol.iterator] === Set.prototype.values,所以可以直接用for...of遍历set 扩展运算符和Set结合,可以去重,返回数组类型 二. WeekSet 成员只能是对象,方法有add、delete 、has WeakSet 里面的引用,都不计入垃圾回收机制 WeakSet 不能遍历,是因为成员都是弱引用,随时可能消失,遍历机制无法保证成员的存在,很可能刚刚遍历结束,成员就取不到了。WeakSet 的一个用处,是储存 DOM 节点,而不用担心这些节点从文档移除时,会引发内存泄漏。 三. Map 类似于对象,键值对的集合,键不限类型,即“值—值”的对应 任何具有Iterator的数据结构都可以当做构造函数的参数 对同一个键赋值,后面的会覆盖掉前面的,Map

md 视频

放肆的年华 提交于 2019-11-26 11:06:38
入门Redis是一款基于键值对的NoSQL数据库,它的值支持多种数据结构:字符串(strings)、哈希(hashes)、列表(入门Redis是一款基于键值对的NoSQL数据库,它的值支持多种数据结构:字符串(strings)、哈希(hashes)、列表(入门Redis是一款基于键值对的NoSQL数据库,它的值支持多种数据结构:字符串(strings)、哈希(hashes)、列表(入门Redis是一款基于键值对的NoSQL数据库,它的值支持多种数据结构:字符串(strings)、哈希(hashes)、列表(入门Redis是一款基于键值对的NoSQL数据库,它的值支持多种数据结构:字符串(strings)、哈希(hashes)、列表(入门Redis是一款基于键值对的NoSQL数据库,它的值支持多种数据结构:字符串(strings)、哈希(hashes)、列表(入门Redis是一款基于键值对的NoSQL数据库,它的值支持多种数据结构:字符串(strings)、哈希(hashes)、列表(入门Redis是一款基于键值对的NoSQL数据库,它的值支持多种数据结构:字符串(strings)、哈希(hashes)、列表( 来源: CSDN 作者: cpongo8长长还好还好哈哈哈哈哈哈哈 链接: https://blog.csdn.net/cpongo8/article/details

Python之数据类型(六)详解

╄→гoц情女王★ 提交于 2019-11-26 01:59:59
Python数据类型之六 六. 字典类型 描述 特点 1.字典的增删改查 2.字典内置函数 (1). len(dict) (2). str(dict) (3). type(variable) 2.字典的常用内置方法 (1)items() (2)keys() / values() (3)update(dict2) (4)pop(key[, default]) (5)popitem() (6)get(key,default=None) (7)copy() / deepcopy() 六. 字典类型 描述 字典内每个元素由键值key:value映射值的键值对形式组成,键值对之间用逗号分隔,并包含在花括号{}中: d = {key1 : value1, key2 : value2 } 特点 value值可以取任意类型,而键值必须是不可变类型,如字符串、数字或者元组,而列表等就不行,且不能重复,重复会被后者覆盖 字典是无序的对象集合,列表是有序的对象集合 1.字典的增删改查 增: 添加新键值对或覆盖旧键值对: 覆盖: 添加: 删: 单一删除:.del dict[ ] 清空:.clear() 删除字典:del dict 2.字典内置函数 (1). len(dict) 返回字典长度,元素的个数,即键的个数 (2). str(dict) 输出字典以字符串表示 (3). type(variable)

关于HashMap

对着背影说爱祢 提交于 2019-11-25 21:16:42
①HashMap的工作原理 HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到bucket位置来储存值对象。当获取对象时,通过键对象的equals()方法找到正确的键值对,然后返回值对象。HashMap使用链表来解决碰撞问题,当发生碰撞了,对象将会储存在链表的下一个节点中。 HashMap在每个链表节点中储存键值对对象。 当两个不同的键对象的 hashcode相同时会发生什么? 它们会储存在同一个bucket位置的链表中。键对象的equals()方法用来找到键值对。 ②HashMap和Hashtable的区别 HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别。主要的区别有:线程安全性,同步(synchronization),以及速度。 HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null(HashMap可以接受为null的键值(key)和值(value),而Hashtable则不行)。 HashMap是非synchronized,而Hashtable是synchronized,这意味着Hashtable是线程安全的