首页 文章 精选 留言 我的

精选列表

搜索[高并发],共10000篇文章
优秀的个人博客,低调大师

可用Redis(三):Hash类型

1.哈希类型键值结构 哈希类型也是key-value结构,key是字符串类型,其value分为两个部分:field和value 其中field部分代表属性,value代表属性对应的值 上面的图里,user:1:info为key,name,age,Date为user这个key的一些属性,value是属性对应的值 在hash中,可以为key添加一个新的属性和新的值 比如使用下面的命令向user:1:info这个key添加一个新属性viewCounter,属性对应的值为100 hset user:1:info viewCounter 100 2.特点 key-value结构 key(field)不能相同,value可以相同 3.Redis哈希类型对应的命令 3.1 hget命令,hset命令和hdel命令 hget key field 获取hash key对应的field的value hset key field value 设置hash key对应的field的value hdel key field 删除hash key对应的field的value 例子: 127.0.0.1:6379> hset user:1:info age 23 (integer) 1 127.0.0.1:6379> hget user:1:info age "23" 127.0.0.1:6379> hset user:1:info name python (integer) 1 127.0.0.1:6379> hgetall user:1:info 1) "age" 2) "23" 3) "name" 4) "python" 127.0.0.1:6379> hdel user:1:info age (integer) 1 127.0.0.1:6379> hgetall user:1:info 1) "name" 2) "python" 127.0.0.1:6379> 注意事项: hget命令,hset命令和hdel命令的时间复杂度为O(1) 3.2 hexists命令和hlen命令 hexists key field 判断hash key是否有field hlen key 获取hash key field的数量 例子: 127.0.0.1:6379> hgetall user:1:info 1) "name" 2) "python" 3) "age" 4) "23" 127.0.0.1:6379> hexists user:1:info name (integer) 1 127.0.0.1:6379> hlen user:1:info (integer) 2 注意事项: hexists命令和hlen命令的时间复杂度为O(1) 3.3 hmget命令和hmset命令 hmget key field1 field2 ... fieldN 批量获取hash key的一批field对应的值 hmset key field1 value1 field2 value2 ... fieldN valueN 批量设置hash key的一批field value 例子: 127.0.0.1:6379> hmset user:2:info age 30 name mysql page 50 OK 127.0.0.1:6379> hlen user:2:info (integer) 3 127.0.0.1:6379> hmget user:2:info age name 1) "30" 2) "mysql" 127.0.0.1:6379> 注意事项: hmget命令和hmset命令的时间复杂度为O(1) 3.4 hgetall命令,hvals命令和hkeys命令 hgetall key 返回hash key对应所有的field和value hvals key 返回hash key对应所有field的value hkeys key 返回hash key对应所有field 例子: 127.0.0.1:6379> hgetall user:2:info 1) "age" 2) "30" 3) "name" 4) "mysql" 5) "page" 6) "50" 127.0.0.1:6379> hvals user:2:info 1) "30" 2) "mysql" 3) "50" 127.0.0.1:6379> hkeys user:2:info 1) "age" 2) "name" 3) "page" 注意事项: hgetall命令,hvals命令和hkeys命令的时间复杂度为O(1) 由于Redis的单线程的特点以及hgetall会返回所有的key和value,所以如果hash中存储的数据过多时,hgetall命令的执行速度会比较慢 3.5 hsetnx命令,hincrby命令和hincrbyfloat命令 hsetnx key field value 设置hash key对应field的value(如field已经存在,则失败) hincrby key field intCounter hash key对应的field的value自增intCounter hincrbyfloat key field floatCounter hincrby浮点数版 注意事项: hsetnx命令,hincrby命令和hincrbyfloat命令的时间复杂度为O(1) 4.实战 记录网站每个用户个人主页的访问量,也可以使用哈希类型 这样可以保证每个用户的相关数据是一个整体,而使用字符串类型保存的话,则每个用户个人主面的访问量与每个用户的其他数据都是一个分离的状态。 记录网站每个用户个人主页的访问量需要根据实际情况来进行设计使用 hincrby user:1:info pageview count 5.使用Redis保存每个用户相关的数据,可以使用三种方式 5.1 方式一 使用用户的id为key,把用户的相关数据进行序列化后并做为value 使用时,根据用户id获取对应的数据的字符串格式,进行反序列化后就可以得到用户相关的数据进行查询和更新操作 5.2 方式二 使用用户的id与用户对应的属性名进行拼接得到新的字符串,并做为key,用户对应属性的值做为value 这样,用户的所有信息都是分离开的,可以很方便的对用户的数据进行查询和更新,并且可以很方便的为用户添加新的属性,而不用对原来的属性有影响 5.3 方式三 使用用户id做为key,用户的其他数据都保存为hash格式, 对用户的属性进行查询,更新和添加都比较方便 保存用户相关数据的方式比较

优秀的个人博客,低调大师

[AR]通Vuforia Getting Started

文章目录[点击展开](?)[+] Vuforia Getting Started 简介 ​ Vuforia创建增强现实应用程序是一个软件平台。开发人员可以轻松地将先进的计算机视觉功能添加到任何应用程序中,允许它识别图像和对象,或在现实世界中重建环境。 ​ 无论你是构建企业应用程序提供一步一步的指示和训练,或交互式营销活动,或产品可视化,使购物体验,Vuforia已经所有的功能和性能来满足您的需求。 ​ Vuforia SDK 6是我们最重要的SDK版本。它包括开创性VuMark™解决方案交付基于“增大化现实”技术的经验任何对象,支持Windows 10设备,和一些新特性和改进。 SDK的示例 从官网下载的Vuforia SDK For Unity的文件列表如下:(6-0-112是版本号) VuMark-6-0-112.unitypackage VirtualButtons-6-0-112.unitypackage UserDefinedTargets-6-0-112.unitypackage TextReco-6-0-112.unitypackage SmartTerrain-6-0-112.unitypackage ObjectRecognition-6-0-112.unitypackage MultiTargets-6-0-112.unitypackage ImageTargets-6-0-112.unitypackage FrameMarkers-6-0-112.unitypackage CylinderTargets-6-0-112.unitypackage CloudReco-6-0-112.unitypackage Vuforia功能特性 Vuforia的识别和跟踪功能可以使用各种图像和对象。 Image Targets (图像目标) 平面图像,如印刷媒体和产品包装。 VuMarks (VuMarks)是定制标记,可以编码数据格式。他们同时支持独特的基于“增大化现实”技术的应用程序识别和跟踪。 VuMark是Vuforia 6.0版本新增的一个功能。它是一个可定制的可视化代码,可以贴在任何产品或机器上面。Vumark的标志可以是预先制作的贴纸或者临时打印。Vumark在工业方面的应用是通过增强现实技术直观地为用户显示一个设备从组装、使用、清洗、修理到最 后检验的一整个流程等。为了保证VuMark的视觉吸引力和可辨识度等方面,用户可以根据现有产品的图形以及品牌标识等重新设计,并且能够编码任何类型的数据,如序列号或URL,VuMark更打破了现有条形码解决方案的局限性,克服了当前条形码不支持增强现实体验, 以及可能影响产品外观的问题。 Multi-Targets (多目标) 创建使用多个图像目标和可以安排成常规的几何形状(如箱)或平面表面的任意安排。 Cylinder Targets (圆柱目标)图像封装到对象约圆柱的形状(例如瓶装饮料、咖啡杯、汽水罐)。 Frame Markers (帧标记) 提供512个数字编码标记,可用于任何图像。标记可能很小,你可以同时探测和跟踪其中几个。 Text Recognition (文字识别)允许您开发应用程序识别的单词从字典~ 100000个英语单词。 Object Targets Vuforia可以识别和跟踪更广泛的3 d对象。对象识别允许对象被扫描物体创建目标。它允许您创建应用程序识别和跟踪复杂的刚体。除了目标识别,Vuforia提供了一个认识和了解用户的物理环境。 Smart Terrain (聪明/智慧的地形)是一个突破性的技术,可以重现用户的物理环境作为一个3 d网格。它使开发人员能够创建一个全新的类游戏和现实产品的视觉经验,内容可以与物理对象和表面在现实世界中。 Platform Components(平台组件) Vuforia平台有三个主要组件 1.Vuforia Engine Vuforia Engine是客户端库,静态链接的应用程序。这是可以通过客户端SDK,支持Android和iOS。你可以使用Android Studio,Xcode或Unity——跨平台的游戏引擎构建应用程序。 2.Tools Vuforia提供工具包括创建Targets,管理Target database,安全地管理App的licenses。 Vuforia Object Scanner(可用于Android),帮助你轻松的扫描3D对象成 target格式,可以在Vuforia引擎中兼容。 开发人员为光学透明的digital eyewear(数码眼镜)构建的应用,可以利用(校准助理)可以让最终用户创建个性化的概要文件适合他们独特的面部几何。Vuforia引擎可以使用这个配置文件,以确保内容呈现在正确的位置。 所有应用程序都需要一个许可证密钥。许可证管理器允许您创建和管理您的许可证密钥和相关服务的计划。 更加详情的文档,请对照官网原文 3. Cloud Recogintion Service(云识别服务) 如果你的app需要识别大量的images,或者database需要频繁的升级,vuforia提供云识别服务。 vuforia web services API 允许你管理这些 large images database 在云端更加有效,使你能够自动化工作流通过直接集成到你的内容管理系统。 更多 Unity扩展 下载地址:https://developer.vuforia.com/downloads/sdk 以vuforia-unity-6-0-112.unitypackage约50MB为例,此package中包括各个功能特性的组件,比如: Assets\Vuforia\Scripts\ BackgroundPlaneBehaviour.cs CloudRecoBehaviour.cs CylinderTargetBehaviour.cs DatabaseLoadBehaviour.cs DefaultInitializationErrorHandler.cs DefaultSmartTerrainEventHandler.cs DefaultTrackableEventHandler.cs DeviceTrackerBehaviour.cs DigitalEyewearBehaviour.cs GLErrorHandler.cs HideExcessAreaBehaviour.cs ImageTargetBehaviour.cs KeepAliveBehaviour.cs MarkerBehaviour.cs MaskOutBehaviour.cs MultiTargetBehaviour.cs ObjectTargetBehaviour.cs PropBehaviour.cs ReconstructionBehaviour.cs ReconstructionFromTargetBehaviour.cs SmartTerrainTrackerBehaviour.cs SurfaceBehaviour.cs TextRecoBehaviour.cs TurnOffBehaviour.cs TurnOffWordBehaviour.cs UserDefinedTargetBuildingBehaviour.cs VideoBackgroundBehaviour.cs VideoBackgroundManager.cs VirtualButtonBehaviour.cs VuforiaBehaviour.cs VuMarkBehaviour.cs WebCamBehaviour.cs WireframeBehaviour.cs WireframeTrackableEventHandler.cs WordBehaviour.cs Scripts\Internal Scripts\Internal\AndroidUnityPlayer.cs Scripts\Internal\ComponentFactoryStarterBehaviour.cs Scripts\Internal\IOSUnityPlayer.cs Scripts\Internal\VuforiaBehaviourComponentFactory.cs Scripts\Internal\WSAUnityPlayer.cs Scripts\Internal\Vuforia.UnityExtensions.dll Scripts\Internal\Vuforia.UnityExtensions.XML Assets\Vuforia\Prefab 各个功能组件的prefab Assets\Plugins Android,IOS,WSA,x86,x64 各平台的插件 说明 日期:2016-09-28 英文原文:https://library.vuforia.com/getting-started 本文转自赵青青博客园博客,原文链接:http://www.cnblogs.com/zhaoqingqing/p/5918681.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

基于zookeeper的可用集群

1.准备zookeeper服务器 #node1,node2,node3 #安装请参考http://suyanzhu.blog.51cto.com/8050189/1946580 2.准备NameNode节点 #node1,node4 3.准备JournalNode节点 #node2,node3,node4 4.准备DataNode节点 #node2,node3,node4 #启动DataNode节点命令hadoop-daemon.shstartdatanode 5.修改hadoop的hdfs-site.xml配置文件 <configuration> <property> <name>dfs.nameservices</name> <value>yunshuocluster</value> </property> <property> <name>dfs.ha.namenodes.yunshuocluster</name> <value>nn1,nn2</value> </property> <property> <name>dfs.namenode.rpc-address.yunshuocluster.nn1</name> <value>node1:8020</value> </property> <property> <name>dfs.namenode.rpc-address.yunshuocluster.nn2</name> <value>node4:8020</value> </property> <property> <name>dfs.namenode.http-address.yunshuocluster.nn1</name> <value>node1:50070</value> </property> <property> <name>dfs.namenode.http-address.yunshuocluster.nn2</name> <value>node4:50070</value> </property> <property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://node2:8485;node3:8485;node4:8485/yunshuocluste r</value> </property> <property> <name>dfs.client.failover.proxy.provider.mycluster</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailo verProxyProvider</value> </property> <property> <name>dfs.ha.fencing.methods</name> <value>sshfence</value> </property> <property> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/root/.ssh/id_dsa</value> </property> <property> <name>dfs.journalnode.edits.dir</name> <value>/opt/journalnode/</value> </property> <property> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> </property> </configuration> 6.修改hadoop的core-site.xml配置文件 <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://yunshuocluster</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop-2.5</value> </property> <property> <name>ha.zookeeper.quorum</name> <value>node1:2181,node2:2181,node3:2181</value> </property> </configuration> 7.配置slaves配置文件 node2 node3 node4 8.启动zookeeper(node1,node2,node3) zkServer.shstart 9.启动Journalnode(node2,node3,node4上分别执行下面的命令) #启动命令停止命令hadoop-daemon.shstopjournalnode hadoop-daemon.shstartjournalnode 10.检查Journalnode,通过查看日志 cd/home/hadoop-2.5.1/logs ls tail-200hadoop-root-journalnode-node2.log 11.格式化NameNode(两台中的一台,这里格式化node4这台NameNode节点) hdfsnamenode-format cd/opt/hadoop-2.5 #两台NameNode同步完成 scp-r/opt/hadoop-2.5/*root@node1:/opt/hadoop-2.5/ 12.初始化zkfc hdfszkfc-formatZK 13.启动服务 start-dfs.sh #stop-dfs.sh表示停止服务 本文转自 素颜猪 51CTO博客,原文链接:http://blog.51cto.com/suyanzhu/1946843

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册