Frequency capping control server for mobile application or anything has a unique ID. like IDFA or just a site id.
You can use this fcsrv to count an ID's daily access. The fcsrv receives a commit in a day from an ID, and just count 1 per day. You can use this to tracking an ID's frequency information. It is very fast (use udp protocol at 100,000 rps or tcp/ip http tunnel about 20,000 rps), and just use small amount of memory (1 million ids, per id with 7 days count, at 1GB memory)
make
binary files will be compiled in bin/fcsrv and bin/client(for test)
- commit an ID into fcsrv
- (commit data with udp protocol to port 3903 contains an ID string), recommend to use udp.
- use tcp/ip api commit:
curl "http://127.0.0.1:3903/?c=commit&id=f81d4fae-7dec-11d0-a765-00a0c91e6bf6"
- get an ID's frequency date list
- use tcp/ip api to get:
curl "http://127.0.0.1:3903/?c=get&id=f81d4fae-7dec-11d0-a765-00a0c91e6bf6"
- you will get a response like:
20151225,20160317,20160318,
. you can use these in other application's logic
- dump memory data to a file in HD for resume.
- It will dump at background, will not lock your application during dumping.
curl "http://127.0.0.1:12345/?c=sys_dump"
- when you restart your fcsrv, it will read the dump file into memory again. you don't need worry about your data after restart server.
- master/slave support
- unix domain socket support
- daily's count number support. (at now, fcsrv just save date's ymd and ignore access in same day.)