private void executeReadWrite(final long count, int keyLen, int valueLen) throws IOException {
		final int defaultKeyLen = 8;
		final int defaultValueLen = 32;

		CacheConfig config = new CacheConfig();
		config.setStorageMode(storageMode);
		cache = new BigCache<String>(TEST_DIR, config);
		List<String> keys = new ArrayList<String>();

		String key = "";
		String value = "";
		if (keyLen > 0) {
			key = TestUtil.randomString(keyLen);
		} else {
			key = TestUtil.randomString(defaultKeyLen);
		}
		if (valueLen > 0) {
			value = TestUtil.randomString(valueLen);
		} else {
			value = TestUtil.randomString(defaultValueLen);
		}
		for (int i = 0; i < count; i++) {
			cache.put(key + i, TestUtil.getBytes(value + i));
			keys.add(key + i);
		}
		assertEquals(cache.count(), count);
		for (String k : keys) {
			String v = new String(cache.get(k));
			String index = k.substring(keyLen > 0 ? keyLen : 8);
			assertEquals(value + index, v);
		}
		for (String k : keys) {
			cache.delete(k);
		}
		for (String k : keys) {
			assertNull(cache.get(k));
		}
	}