-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
#2285-Add-example-scripts-hyperloglog - Added hyperloglog examples to… (
#2289) * #2285-Add-example-scripts-hyperloglog - Added hyperloglog examples to address Issue #2285 * #2285-Add-example-scripts-hyperloglog - Added the results as comments * #2285-Add-example-scripts-hyperloglog - Changes from review * #2285-Add-example-scripts-hyperloglog - Changes from review
- Loading branch information
Showing
2 changed files
with
52 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
// Example to log traffic data at intersections for the city of San Francisco. | ||
// Log license plates of each car scanned at each intersection and add to the intersections Hyperloglog. | ||
// Reference: https://www.youtube.com/watch?v=MunL8nnwscQ | ||
|
||
import { createClient } from 'redis'; | ||
|
||
const client = createClient(); | ||
|
||
await client.connect(); | ||
|
||
// Use `pfAdd` to add an element to a Hyperloglog, creating the Hyperloglog if necessary. | ||
// await client.pfAdd(key, value) | ||
|
||
// To get a count, the `pfCount` method is used. | ||
// await client.pfCount(key) | ||
|
||
try { | ||
// Corner of Market Street (ID: 12) and 10th street (ID:27). | ||
await client.pfAdd('count:sf:12:27', 'GHN34X'); | ||
await client.pfAdd('count:sf:12:27', 'ECN94Y'); | ||
await client.pfAdd('count:sf:12:27', 'VJL12V'); | ||
await client.pfAdd('count:sf:12:27', 'ORV87O'); | ||
|
||
// To get the count of Corner of Market Street (ID: 12) and 10th street (ID:27). | ||
const countForMarket10thStreet = await client.pfCount('count:sf:12:27'); | ||
console.log(`Count for Market Street & 10th Street is ${countForMarket10thStreet}`); | ||
// Count for Market Street & 10th Street is 4. | ||
|
||
// Corner of Market Street (ID: 12) and 11 street (ID:26). | ||
await client.pfAdd('count:sf:12:26', 'GHN34X'); | ||
await client.pfAdd('count:sf:12:26', 'ECN94Y'); | ||
await client.pfAdd('count:sf:12:26', 'IRV84E'); | ||
await client.pfAdd('count:sf:12:26', 'ORV87O'); | ||
await client.pfAdd('count:sf:12:26', 'TEY34S'); | ||
|
||
// To get the count of Corner of Market Street (ID: 12) and 11th street (ID:26). | ||
const countForMarket11thStreet = await client.pfCount('count:sf:12:26'); | ||
console.log(`Count for Market Street & 11th Street is ${countForMarket11thStreet}`); | ||
// Count for Market Street & 11th Street is 5. | ||
|
||
// To merge the Hyperloglogs `count:sf:12:26` and `count:sf:12:27`. | ||
await client.pfMerge('count:merge', ['count:sf:12:27', 'count:sf:12:26']); | ||
const countMerge = await client.pfCount('count:merge'); | ||
console.log(`Count for the merge is ${countMerge}`); | ||
// Count for the merge is 6. | ||
} catch (e) { | ||
// something went wrong. | ||
console.error(e); | ||
} | ||
|
||
await client.quit(); |