哈希表

Redis常用命令

廉价感情. 提交于 2019-12-04 13:19:37
1.删除所有的key flushall | flushdb 2.查看所有的key keys * exists key 检测键是否存在 3.返回key所储存的值的类型 type [key值] 4.返回key的过期时间 单位秒 ttl [key] 5.设置永不过期 set key value //set name zhangsan expire key seconds //单独为某个键设置过期时间 6.设置过期时间 setex key expire value // setex name 10 lisi 7.列出所有的hashname下所有的字段 hgetall hashname 8.hash操作 hset hashname filed value hset studyLogs uid_12 ‘序列化的字符串’ 9.版本查看 redis-server --version [或 -v] 10.客户端连接 redis-cli -h 127.0.0.1 11.centos 安装redis CENTOS7下安装REDIS 12. Redis 在Centos7下配置开机自启动 13. redis集群方案 14、windows环境安装redis Windows下安装Redis服务 Redis 键(key) 命令 命令 描述 Redis DEL 命令 该命令用于在 key 存在是删除 key。

HashMap源码解析

五迷三道 提交于 2019-12-04 07:12:33
对于HashMap,如果是java程序员,那么定然不会陌生,对于HashMap,应该说是最常用的一种Map结构了,同样在面试当中也会屡屡被提问到,常见的几种题目: HashMap的默认容量? HashMap是如何扩容的? HashMap的数组大小为什么一定是2的幂? HashMap为什么是线程不安全的? Java7到Java8做了哪些改进?为什么? 因为重要,所以我也就学习源码,并且将学习心得记录下来,与大家一起学习。 首先 再看HashMap之前,我们来简单回顾一下哈希表 哈希表是由一些基于哈希值的桶和链表所构成的。哈希桶就是可以快速检索的数据结构,举个例子 如果要寻找电话本的人的联系方式,我们可以利用拼音的首字母快速定位到这个联系人,存放这些字母的就叫哈希桶。本质上,哈希桶就是 将一个元素映射成一个可以快速检索的哈希值。 哈希桶加上数组就构成了哈希表,数组的好处是随机寻址的速度与长度无关,时间复杂度是O(1),但是哈希表最大的缺点是会发生碰撞,如果多个元素的哈希值是相同的,那么我们就说哈希值发生了碰撞,为了解决这个问题,我们将数组换成了链表,找到哈希值时,通过哈希桶里可以精确的找到所要查找的元素。平均差找时间都是O(1)。在java世界中,我们用来表达哈希表的数据结构就是HashMap。 哈希桶的实现是由hashcode实现的int hashcode 底下有对象:object1

Java数据结构(下)

走远了吗. 提交于 2019-12-04 07:06:15
哈希表( Hashtable ) 字典( Dictionary ) 属性( Properties ) 1.Hashtable(哈希表) 哈希表提供了一种在用户定义键结构的基础上来组织数据的手段。在地址列表的哈希表,选择键可以根据邮编存储和排序数据,其中哈希表键的具体含义完全取决于哈希表的使用情景和它包含的数据。 位于java.util包中,是Dictionary具体的实现,Hashtable实现了Map接口,因 此,Hashtable集成到了集合框架中。它和HashMap类很相似,但是它支持同步。Hashtable在哈希表中存储键/值对。当使用一个哈希表,要指定用作键的对象,以及要链接到该键的值。 构造方法: 默认构造方法 Hashtable() 创建指定大小的哈希表 Hashtable(int size) 创建了指定大小的哈希表,并且通过fillRatio指定填充比例 Hashtable(int size,float fillRatio) 创建了以M中元素为初始化元素的哈希表 Hashtable(Map m) 使用: package com.day6; import java.util.Date; import java.util.Enumeration; import java.util.Hashtable; /** * @author SFJ * @date 2019/11

redis命令

给你一囗甜甜゛ 提交于 2019-12-04 06:16:43
redis命令一(key) 1、del key 删除key2、dump key 序列化给定的key,并返回被序列化的值3、expire key 为指定的key设置过期时间(单位/秒)4、exists key 检测有无指定的key5、expireat key timestamp 设置过期时间,与上面不同的是这个命令接受的时间参数是unix(时间戳)6、pexpire key 设置过期时间以毫秒计7、pexpirat key 设置 key 过期时间的时间戳(unix timestamp) 以毫秒计8、keys pattern 查找所有符合给定模式的key9、move key db 将当前数据库的 key 移动到给定的数据库 db 当中10、persist key 移除 key 的过期时间,key 将持久保持。11、pttl key 以毫秒为单位返回key的剩余的过期时间12、ttl key 以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。13、randomkey 返回一个随机的key14、rename 更改key的名称15、renamenx 仅当key不存在的时候更改key名称16、type key 返回key中value的类型 字符串操作命令1、set key value 设定指定key的值2、get key 获取指定key的值3、getrange

Zookeeper

谁说我不能喝 提交于 2019-12-04 04:52:32
介绍   ZooKeeper 是一种分布式协调服务,用于管理大型主机。在分布式环境中协调和管理服务是一个复杂的过程。ZooKeeper 通过其简单的架构和 API 解决了这个问题。ZooKeeper 允许开发人员专注于核心应用程序逻辑,而不必担心应用程序的分布式特性。 ZK数据模型   Z ookeeper的数据模型就是一棵二叉树,和linux的目录结构一样       Zookeeper 的数据存储也同样是基于节点,这种节点叫做 Znode, Zookeeper 是为读多写少的场景所设计,Znode 并不是用来存储大规模业务数据,而是用于存储少量的状态和配置信息, 每个节点的数据最大不能超过 1MB 。    data:Znode 存储的数据信息。   ACL:记录 Znode 的访问权限,即哪些人或哪些 IP 可以访问本节点。   stat:包含 Znode 的各种元数据,比如事务 ID、版本号、时间戳、大小等等。   child:当前节点的子节点引用 基本操作    创建节点 create     删除节点 delete     判断节点是否存在 exists     获取节点数据 getData     设置节点数据 setData     获取节点下所有子节点 getChildren     exists , getData , getChildren 属于读操作

Java中Collection和Map集合总结

China☆狼群 提交于 2019-12-04 04:03:22
Collection(单列集合) List(有序,可重复) ArrayList 底层数据结构是数组,查询快,增删慢 线程不安全,效率高 Vector 底层数据结构是数组,查询快,增删慢 线程安全,效率低 LinkedList 底层数据结构是链表,查询慢,增删快 线程不安全,效率高 Set(无序,唯一) HashSet 底层数据结构是哈希表。 哈希表依赖两个方法:hashCode()和equals() 执行顺序: 首先判断hashCode()值是否相同 是:继续执行equals(),看其返回值 是true:说明元素重复,不添加 是false:就直接添加到集合 否:就直接添加到集合 最终: 自动生成hashCode()和equals()即可 LinkedHashSet 底层数据结构由链表和哈希表组成。 由链表保证元素有序。 由哈希表保证元素唯一。 TreeSet 底层数据结构是红黑树。(是一种自平衡的二叉树) 如何保证元素唯一性呢? 根据比较的返回值是否是0来决定 如何保证元素的排序呢? 两种方式 自然排序(元素具备比较性) 让元素所属的类实现Comparable接口 比较器排序(集合具备比较性) 让集合接收一个Comparator的实现类对象 Map(双列集合) A:Map集合的数据结构仅仅针对键有效,与值无关。 B:存储的是键值对形式的元素,键唯一,值可重复。 HashMap

集合特点和数据结构总结

…衆ロ難τιáo~ 提交于 2019-12-04 03:56:23
1:集合 Collection(单列集合) List(有序,可重复) ArrayList 底层数据结构是数组,查询快,增删慢 线程不安全,效率高 Vector 底层数据结构是数组,查询快,增删慢 线程安全,效率低 LinkedList 底层数据结构是链表,查询慢,增删快 线程不安全,效率高 Set(无序,唯一) HashSe t 底层数据结构是哈希表。 哈希表依赖两个方法:hashCode()和equals() 执行顺序: 首先判断hashCode()值是否相同 是:继续执行equals(),看其返回值 是true:说明元素重复,不添加 是false:就直接添加到集合 否:就直接添加到集合 最终: 自动生成hashCode()和equals()即可 LinkedHashSet 底层数据结构由链表和哈希表组成。 由链表保证元素有序。 由哈希表保证元素唯一。 TreeSet 底层数据结构是红黑树。(是一种自平衡的二叉树) 如何保证元素唯一性呢? 根据比较的返回值是否是0来决定 如何保证元素的排序呢? 两种方式 自然排序(元素具备比较性) 让元素所属的类实现Comparable接口 比较器排序(集合具备比较性) 让集合接收一个Comparator的实现类对象 Map(双列集合) A:Map集合的数据结构仅仅针对键有效,与值无关。 B:存储的是键值对形式的元素,键唯一,值可重复。

Java中常见数据结构:list与map 的底层实现

江枫思渺然 提交于 2019-12-04 03:54:50
Collection(单列集合) List(有序,可重复) ArrayList 底层数据结构是数组,查询快,增删慢 线程不安全,效率高 Vector 底层数据结构是数组,查询快,增删慢 线程安全,效率低 LinkedList 底层数据结构是链表,查询慢,增删快 线程不安全,效率高 Set(无序,唯一) HashSet 底层数据结构是哈希表。 哈希表依赖两个方法:hashCode()和equals() 执行顺序: 首先判断hashCode()值是否相同 是:继续执行equals(),看其返回值 是true:说明元素重复,不添加 是false:就直接添加到集合 否:就直接添加到集合 最终: 自动生成hashCode()和equals()即可 LinkedHashSet 底层数据结构由链表和哈希表组成。 由链表保证元素有序。 由哈希表保证元素唯一。 TreeSet 底层数据结构是红黑树。(是一种自平衡的二叉树) 如何保证元素唯一性呢? 根据比较的返回值是否是0来决定 如何保证元素的排序呢? 两种方式 自然排序(元素具备比较性) 让元素所属的类实现Comparable接口 比较器排序(集合具备比较性) 让集合接收一个Comparator的实现类对象 Map(双列集合) A:Map集合的数据结构仅仅针对键有效,与值无关。 B:存储的是键值对形式的元素,键唯一,值可重复。 HashMap

Java中常见数据结构:list与map -底层如何实现

浪子不回头ぞ 提交于 2019-12-04 03:54:36
1:集合 Collection(单列集合) List(有序,可重复) ArrayList 底层数据结构是数组,查询快,增删慢 线程不安全,效率高 Vector 底层数据结构是数组,查询快,增删慢 线程安全,效率低 LinkedList 底层数据结构是链表,查询慢,增删快 线程不安全,效率高 Set(无序,唯一) HashSet 底层数据结构是哈希表。 哈希表依赖两个方法:hashCode()和equals() 执行顺序: 首先判断hashCode()值是否相同 是:继续执行equals(),看其返回值 是true:说明元素重复,不添加 是false:就直接添加到集合 否:就直接添加到集合 最终: 自动生成hashCode()和equals()即可 LinkedHashSet 底层数据结构由链表和哈希表组成。 由链表保证元素有序。 由哈希表保证元素唯一。 TreeSet 底层数据结构是红黑树。(是一种自平衡的二叉树) 如何保证元素唯一性呢? 根据比较的返回值是否是0来决定 如何保证元素的排序呢? 两种方式 自然排序(元素具备比较性) 让元素所属的类实现Comparable接口 比较器排序(集合具备比较性) 让集合接收一个Comparator的实现类对象 Map(双列集合) A:Map集合的数据结构仅仅针对键有效,与值无关。 B:存储的是键值对形式的元素,键唯一,值可重复。

Java中常见数据结构:Java容器 Collection与map -底层如何实现

戏子无情 提交于 2019-12-04 03:53:35
1 :集合 2 Collection(单列集合) 3 List (有序,可重复) 4 ArrayList 5 底层数据结构是数组,查询快,增删慢 6 线程不安全,效率高 7 Vector 8 底层数据结构是数组,查询快,增删慢 9 线程安全,效率低 10 LinkedList 11 底层数据结构是链表,查询慢,增删快 12 线程不安全,效率高 13 Set (无序,唯一) 14 HashSet 15 底层数据结构是哈希表。 16 哈希表依赖两个方法:hashCode()和 equals () 17 执行顺序: 18 首先判断hashCode()值是否相同 19 是:继续执行 equals (),看其返回值 20 是 true :说明元素重复,不添加 21 是 false :就直接添加到集合 22 否:就直接添加到集合 23 最终: 24 自动生成hashCode()和 equals ()即可 25 26 LinkedHashSet 27 底层数据结构由链表和哈希表组成。 28 由链表保证元素有序。 29 由哈希表保证元素唯一。 30 TreeSet 31 底层数据结构是红黑树。(是一种自平衡的二叉树) 32 如何保证元素唯一性呢 ? 33 根据比较的返回值是否是 0 来决定 34 如何保证元素的排序呢 ? 35 两种方式 36 自然排序(元素具备比较性) 37