tree db6127eacc01907239aed2e967e920f00d515b11
parent 52090095bd2383dd7fdf4a2e46f62043b5cc1611
author Hale Bales <hbales@pivotal.io> 1610049334 -0800
committer GitHub <noreply@github.com> 1610049334 -0800
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJf92c2CRBK7hj4Ov3rIwAAdHIIACZNjULg5nCdfwUk0OFxQuoY
 pXU0OzXV0prVA3HkW+whAPPuOkIsi/K3VHN1NUM6ZFQkuSbKBgqx6H4cRAYLtSY4
 3kVe9D7gizQRDHGxq9CYMwmN2DLNNcRiFjUt08Ma2NwboKsAYv34lu/5VwKvRqTF
 Kc9XuzZ3aCDIkuty3yzcvl7Mn65rIPLn0bLjkkP1QCqYEzIIJzS8+HV++ow+IgrX
 p0lggl84znyfCN+bkXOegelM7IhtnT56njFTa39UUWMwH1RWZy7V8Pb/ixvDzGQB
 ZYlPULyHAECc1pN01oyUTPq4p1KFAJwTDUDn6jbhXaQRrjsv/gnd0fhNjUV/cDM=
 =RGCP
 -----END PGP SIGNATURE-----
 

GEODE-8786 redis info command hit miss ratios (#5875)

* GEODE-8786: fix hit/miss ratios in redis stats

- add enum for keyspace increment type
- remove clearall() method
- add tests for supported commands that do not update the stats
- use boolean to indicate if stats should be updated
- get the s*store command tests working
- add internal pttl to be called from the expire command to avoid updating the stats
- move the updateStats boolean up a level
- remove unused executors
- change s*store stats integrations tests to reflect behavior in native redis
- fix bitop test
- add INTERNAL command type
- fix supported commands dunit tests to allow for new internal commands
- changed tests to use delegate methods
- remove unecessary pubsub and connection tests. they don't have anything to do with key hits/misses
- remove unecessary getRedisString and getRedisHash methods. leaving only the method that takes a boolean for updating the stats

Co-authored-by: Ray Ingles <ringles@vmware.com>
Co-authored-by: john Hutchison <hutchisonjo@vmware.com>