All Projects → vicanso → Pike

vicanso / Pike

Licence: mit
HTTP cache server, such as varnish

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Pike

Foshttpcache
Integrate your PHP application with your HTTP caching proxy
Stars: ✭ 308 (+98.71%)
Mutual labels:  caching, varnish
Laravel Varnish
Making Varnish and Laravel play nice together
Stars: ✭ 291 (+87.74%)
Mutual labels:  caching, varnish
varnishtraining
Second iteration of my Varnish training. This version is specifically created for the Symfony Live Berlin 2017 workshop I've presented.
Stars: ✭ 31 (-80%)
Mutual labels:  caching, varnish
Awesome Wp Speed Up
Plugins and resources to speed up and optimize your WordPress site.
Stars: ✭ 375 (+141.94%)
Mutual labels:  caching, varnish
Flutter cached network image
Download, cache and show images in a flutter app
Stars: ✭ 1,923 (+1140.65%)
Mutual labels:  caching
Frontend Computer Science
A list of Computer Science topics important for a Front-End Developer to learn 📝
Stars: ✭ 113 (-27.1%)
Mutual labels:  caching
Django Cacheops
A slick ORM cache with automatic granular event-driven invalidation.
Stars: ✭ 1,379 (+789.68%)
Mutual labels:  caching
Hazelcast Python Client
Hazelcast IMDG Python Client
Stars: ✭ 92 (-40.65%)
Mutual labels:  caching
Mvcdonutcaching
ASP.NET MVC Extensible Donut Caching brings donut caching to ASP.NET MVC 3 and later. The code allows you to cache all of your page apart from one or more Html.Actions which can be executed every request. Perfect for user specific content.
Stars: ✭ 146 (-5.81%)
Mutual labels:  caching
Olric
Distributed cache and in-memory key/value data store. It can be used both as an embedded Go library and as a language-independent service.
Stars: ✭ 2,067 (+1233.55%)
Mutual labels:  caching
Data Prefetch Link
Extends next.js <Link> to allow invoking getInitialProps when prefetching a page
Stars: ✭ 128 (-17.42%)
Mutual labels:  caching
Prometheus varnish exporter
Varnish exporter for Prometheus
Stars: ✭ 115 (-25.81%)
Mutual labels:  varnish
Laravel Responsecache
Speed up a Laravel app by caching the entire response
Stars: ✭ 1,874 (+1109.03%)
Mutual labels:  varnish
Node Cache
a node internal (in-memory) caching module
Stars: ✭ 1,660 (+970.97%)
Mutual labels:  caching
Ngx Cache
Cache utility for Angular
Stars: ✭ 144 (-7.1%)
Mutual labels:  caching
Metaphore
Cache slam defense using a semaphore to prevent dogpile effect.
Stars: ✭ 96 (-38.06%)
Mutual labels:  caching
Varnish3to4
Varnish 3 to 4 migration script
Stars: ✭ 125 (-19.35%)
Mutual labels:  varnish
Hazelcast Go Client
Hazelcast IMDG Go Client
Stars: ✭ 140 (-9.68%)
Mutual labels:  caching
Hazelcast Nodejs Client
Hazelcast IMDG Node.js Client
Stars: ✭ 124 (-20%)
Mutual labels:  caching
Cash
HTTP response caching for Koa. Supports Redis, in-memory store, and more!
Stars: ✭ 122 (-21.29%)
Mutual labels:  caching

pike

Build Status

与varnish类似的HTTP缓存服务器,主要的特性如下:

  • 提供WEB的管理配置界面,简单易上手
  • 支持br与gzip两种压缩方式,根据客户端自动选择。对于可缓存与不可缓存请求使用不同的压缩配置,更佳的时间与空间的平衡
  • 仅基于Cache-Control生成缓存有效期,接口缓存完全由接口开发者决定,准确而高效(开发比运维更清楚接口是否可缓存,可缓存时长)
  • 配置支持文件与etcd两种形式存储,无中断的配置实时更新
  • 支持H2C的转发,提升与后端服务的调用性能(如果是内网转发,不需要启用)
  • 与upstream的调用支持gzipbrotlilz4snappy以及zstd压缩,可根据与upstream的网络线路选择合适的压缩方式
  • 支持upstream检测失败时回调告警,可及时获取异常upstream信息
  • 支持自定义日志,可配置按日期与大小分割日志并压缩
  • LUR与持久化存储(可选)配合使用,可根据内存使用选择更小的LRU缓存并增加持久化存储的方式

启动方式

启动参数主要如下:

  • config 配置保存地址,可以指定为etcd或者本地文件,如:etcd://user:[email protected]:2379/pike,本地文件:/opt/pike/config.yml
  • admin 配置管理后台的访问地址,如:--admin=:9013
  • log 日志文件目录,支持单文件与lumberjack形式,如/var/pike.loglumberjack:///tmp/pike.log?maxSize=100&maxAge=1&compress=true,lumberjack会根据文件内容大小与时间将文件分割

使用文件保存配置

# linux etcd,管理后台使用9013端口访问
./pike --config=etcd://127.0.0.1:2379/pike --admin=:9013
# linux file,配置文件保存在/opt/pike.yml,管理后台使用9013端口访问
./pike --config=/opt/pike.yml --admin=:9013

# docker
docker run -it --rm \
    -p 9013:9013 \
    vicanso/pike:4.0.0-alpha --config=etcd://172.16.183.177:2379/pike --admin=:9013

TODO

  • 缓存查询(如果缓存量较大,有可能导致查询性能较差,暂时未支持)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].