{"id":13701211,"url":"https://github.com/apache/geode","last_synced_at":"2025-05-11T03:51:43.007Z","repository":{"id":31277493,"uuid":"34839383","full_name":"apache/geode","owner":"apache","description":"Apache Geode","archived":false,"fork":false,"pushed_at":"2025-05-09T03:39:04.000Z","size":224500,"stargazers_count":2299,"open_issues_count":29,"forks_count":682,"subscribers_count":199,"default_branch":"develop","last_synced_at":"2025-05-11T03:51:27.652Z","etag":null,"topics":["apache","datagrid","geode"],"latest_commit_sha":null,"homepage":"https://geode.apache.org/","language":"Java","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apache.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2015-04-30T07:00:05.000Z","updated_at":"2025-05-09T09:31:56.000Z","dependencies_parsed_at":"2024-09-30T01:21:38.482Z","dependency_job_id":"d0f9041a-b3e1-4d33-9f41-d24700ef6401","html_url":"https://github.com/apache/geode","commit_stats":{"total_commits":10816,"total_committers":246,"mean_commits":43.96747967479675,"dds":0.9260355029585798,"last_synced_commit":"d1958146c12affb1fe3eabc5823bb4eeb6c0badc"},"previous_names":[],"tags_count":65,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fgeode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fgeode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fgeode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fgeode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apache","download_url":"https://codeload.github.com/apache/geode/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253514569,"owners_count":21920335,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apache","datagrid","geode"],"created_at":"2024-08-02T20:01:22.426Z","updated_at":"2025-05-11T03:51:42.990Z","avatar_url":"https://github.com/apache.png","language":"Java","readme":"\u003cdiv align=\"center\"\u003e\n    \n[![Apache Geode logo](https://geode.apache.org/img/Apache_Geode_logo.png)](http://geode.apache.org)\n\n[![Build Status](https://concourse.apachegeode-ci.info/api/v1/teams/main/pipelines/apache-develop-main/badge)](https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-main) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.apache.geode/geode-core/badge.svg)](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.apache.geode%22) [![homebrew](https://img.shields.io/homebrew/v/apache-geode.svg)](https://formulae.brew.sh/formula/apache-geode) [![Docker Pulls](https://img.shields.io/docker/pulls/apachegeode/geode.svg)](https://hub.docker.com/r/apachegeode/geode/) [![Total alerts](https://img.shields.io/lgtm/alerts/g/apache/geode.svg?logo=lgtm\u0026logoWidth=18)](https://lgtm.com/projects/g/apache/geode/alerts/) [![Language grade: Java](https://img.shields.io/lgtm/grade/java/g/apache/geode.svg?logo=lgtm\u0026logoWidth=18)](https://lgtm.com/projects/g/apache/geode/context:java) [![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/apache/geode.svg?logo=lgtm\u0026logoWidth=18)](https://lgtm.com/projects/g/apache/geode/context:javascript) [![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/apache/geode.svg?logo=lgtm\u0026logoWidth=18)](https://lgtm.com/projects/g/apache/geode/context:python)\n\n\u003c/div\u003e\n\n## Contents\n\n1. [Overview](#overview)\n2. [How to Get Apache Geode](#obtaining)\n3. [Main Concepts and Components](#concepts)\n4. [Location of Directions for Building from Source](#building)\n5. [Geode in 5 minutes](#started)\n6. [Application Development](#development)\n7. [Documentation](https://geode.apache.org/docs/)\n8. [Wiki](https://cwiki.apache.org/confluence/display/GEODE/Index)\n9. [How to Contribute](https://cwiki.apache.org/confluence/display/GEODE/How+to+Contribute)\n10. [Export Control](#export)\n\n## \u003ca name=\"overview\"\u003e\u003c/a\u003eOverview\n\n[Apache Geode](http://geode.apache.org/) is\na data management platform that provides real-time, consistent access to\ndata-intensive applications throughout widely distributed cloud architectures.\n\nApache Geode pools memory, CPU, network resources, and optionally local disk\nacross multiple processes to manage application objects and behavior. It uses\ndynamic replication and data partitioning techniques to implement high\navailability, improved performance, scalability, and fault tolerance. In\naddition to being a distributed data container, Apache Geode is an in-memory\ndata management system that provides reliable asynchronous event notifications\nand guaranteed message delivery.\n\nApache Geode is a mature, robust technology originally developed by GemStone\nSystems. Commercially available as GemFire™, it was first deployed in the\nfinancial sector as the transactional, low-latency data engine used in Wall\nStreet trading platforms.  Today Apache Geode technology is used by hundreds of\nenterprise customers for high-scale business applications that must meet low\nlatency and 24x7 availability requirements.\n\n## \u003ca name=\"obtaining\"\u003e\u003c/a\u003eHow to Get Apache Geode\n\nYou can download Apache Geode from the\n[website](https://geode.apache.org/releases/), run a Docker\n[image](https://hub.docker.com/r/apachegeode/geode/), or install with\n[Homebrew](https://formulae.brew.sh/formula/apache-geode) on OSX. Application developers\ncan load dependencies from [Maven\nCentral](https://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.apache.geode%22).\n\nMaven\n```xml\n\u003cdependencies\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003eorg.apache.geode\u003c/groupId\u003e\n        \u003cartifactId\u003egeode-core\u003c/artifactId\u003e\n        \u003cversion\u003e$VERSION\u003c/version\u003e\n    \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n\nGradle\n```groovy\ndependencies {\n  compile \"org.apache.geode:geode-core:$VERSION\"\n}\n```\n\n## \u003ca name=\"concepts\"\u003e\u003c/a\u003eMain Concepts and Components\n\n_Caches_ are an abstraction that describe a node in an Apache Geode distributed\nsystem.\n\nWithin each cache, you define data _regions_. Data regions are analogous to\ntables in a relational database and manage data in a distributed fashion as\nname/value pairs. A _replicated_ region stores identical copies of the data on\neach cache member of a distributed system. A _partitioned_ region spreads the\ndata among cache members. After the system is configured, client applications\ncan access the distributed data in regions without knowledge of the underlying\nsystem architecture. You can define listeners to receive notifications when\ndata has changed, and you can define expiration criteria to delete obsolete\ndata in a region.\n\n_Locators_ provide clients with both discovery and server load balancing\nservices. Clients are configured with locator information, and the locators\nmaintain a dynamic list of member servers. The locators provide clients with\nconnection information to a server.\n\nApache Geode includes the following features:\n\n* Combines redundancy, replication, and a \"shared nothing\" persistence\n  architecture to deliver fail-safe reliability and performance.\n* Horizontally scalable to thousands of cache members, with multiple cache\n  topologies to meet different enterprise needs. The cache can be\n  distributed across multiple computers.\n* Asynchronous and synchronous cache update propagation.\n* Delta propagation distributes only the difference between old and new\n  versions of an object (delta) instead of the entire object, resulting in\n  significant distribution cost savings.\n* Reliable asynchronous event notifications and guaranteed message delivery\n  through optimized, low latency distribution layer.\n* Data awareness and real-time business intelligence. If data changes as\n  you retrieve it, you see the changes immediately.\n* Integration with Spring Framework to speed and simplify the development\n  of scalable, transactional enterprise applications.\n* JTA compliant transaction support.\n* Cluster-wide configurations that can be persisted and exported to other\n  clusters.\n* Remote cluster management through HTTP.\n* REST APIs for REST-enabled application development.\n* Rolling upgrades may be possible, but they will be subject to any\n  limitations imposed by new features.\n\n## \u003ca name=\"building\"\u003e\u003c/a\u003eBuilding this Release from Source\n\nSee [BUILDING.md](./BUILDING.md) for\ninstructions on how to build the project.\n\n## \u003ca name=\"testing\"\u003e\u003c/a\u003eRunning Tests\nSee [TESTING.md](./TESTING.md) for\ninstructions on how to run tests.\n\n## \u003ca name=\"started\"\u003e\u003c/a\u003eGeode in 5 minutes\n\nGeode requires installation of JDK version 1.8.  After installing Apache Geode,\nstart a locator and server:\n```console\n$ gfsh\ngfsh\u003e start locator\ngfsh\u003e start server\n```\n\nCreate a region:\n```console\ngfsh\u003e create region --name=hello --type=REPLICATE\n```\n\nWrite a client application (this example uses a [Gradle](https://gradle.org)\nbuild script):\n\n_build.gradle_\n```groovy\napply plugin: 'java'\napply plugin: 'application'\n\nmainClassName = 'HelloWorld'\n\nrepositories { mavenCentral() }\ndependencies {\n  compile 'org.apache.geode:geode-core:1.4.0'\n  runtime 'org.slf4j:slf4j-log4j12:1.7.24'\n}\n```\n\n_src/main/java/HelloWorld.java_\n```java\nimport java.util.Map;\nimport org.apache.geode.cache.Region;\nimport org.apache.geode.cache.client.*;\n\npublic class HelloWorld {\n  public static void main(String[] args) throws Exception {\n    ClientCache cache = new ClientCacheFactory()\n      .addPoolLocator(\"localhost\", 10334)\n      .create();\n    Region\u003cString, String\u003e region = cache\n      .\u003cString, String\u003ecreateClientRegionFactory(ClientRegionShortcut.CACHING_PROXY)\n      .create(\"hello\");\n\n    region.put(\"1\", \"Hello\");\n    region.put(\"2\", \"World\");\n\n    for (Map.Entry\u003cString, String\u003e  entry : region.entrySet()) {\n      System.out.format(\"key = %s, value = %s\\n\", entry.getKey(), entry.getValue());\n    }\n    cache.close();\n  }\n}\n```\n\nBuild and run the `HelloWorld` example:\n```console\n$ gradle run\n```\n\nThe application will connect to the running cluster, create a local cache, put\nsome data in the cache, and print the cached data to the console:\n```console\nkey = 1, value = Hello\nkey = 2, value = World\n```\n\nFinally, shutdown the Geode server and locator:\n```console\ngfsh\u003e shutdown --include-locators=true\n```\n\nFor more information see the [Geode\nExamples](https://github.com/apache/geode-examples) repository or the\n[documentation](https://geode.apache.org/docs/).\n\n## \u003ca name=\"development\"\u003e\u003c/a\u003eApplication Development\n\nApache Geode applications can be written in these client technologies:\n\n* Java [client](https://geode.apache.org/docs/guide/18/topologies_and_comm/cs_configuration/chapter_overview.html)\n  or [peer](https://geode.apache.org/docs/guide/18/topologies_and_comm/p2p_configuration/chapter_overview.html)\n* [REST](https://geode.apache.org/docs/guide/18/rest_apps/chapter_overview.html)\n* [Memcached](https://cwiki.apache.org/confluence/display/GEODE/Moving+from+memcached+to+gemcached)\n\nThe following libraries are available external to the Apache Geode project:\n\n* [Spring Data GemFire](https://projects.spring.io/spring-data-gemfire/)\n* [Spring Cache](https://docs.spring.io/spring/docs/current/spring-framework-reference/html/cache.html)\n* [Python](https://github.com/gemfire/py-gemfire-rest)\n\n## \u003ca name=\"export\"\u003e\u003c/a\u003eExport Control\n\nThis distribution includes cryptographic software.\nThe country in which you currently reside may have restrictions\non the import, possession, use, and/or re-export to another country,\nof encryption software. BEFORE using any encryption software,\nplease check your country's laws, regulations and policies\nconcerning the import, possession, or use, and re-export of\nencryption software, to see if this is permitted.\nSee \u003chttp://www.wassenaar.org/\u003e for more information.\n\nThe U.S. Government Department of Commerce, Bureau of Industry and Security (BIS),\nhas classified this software as Export Commodity Control Number (ECCN) 5D002.C.1,\nwhich includes information security software using or performing\ncryptographic functions with asymmetric algorithms.\nThe form and manner of this Apache Software Foundation distribution makes\nit eligible for export under the License Exception\nENC Technology Software Unrestricted (TSU) exception\n(see the BIS Export Administration Regulations, Section 740.13)\nfor both object code and source code.\n\nThe following provides more details on the included cryptographic software:\n\n* Apache Geode is designed to be used with\n  [Java Secure Socket Extension](https://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html) (JSSE) and\n  [Java Cryptography Extension](https://docs.oracle.com/javase/8/docs/technotes/guides/security/crypto/CryptoSpec.html) (JCE).\n  The [JCE Unlimited Strength Jurisdiction Policy](https://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html)\n  may need to be installed separately to use keystore passwords with 7 or more characters.\n* Apache Geode links to and uses [OpenSSL](https://www.openssl.org/) ciphers.\n\n","funding_links":[],"categories":["Java","others","数据库","\u003ca id=\"1d9dec1320a5d774dc8e0e7604edfcd3\"\u003e\u003c/a\u003e工具-新添加的"],"sub_categories":["\u003ca id=\"8f1b9c5c2737493524809684b934d49a\"\u003e\u003c/a\u003e文章\u0026\u0026视频"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fgeode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapache%2Fgeode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fgeode/lists"}