func (c *CCMap) GetSliceMap(key string) *MapSlice {
	return c.values[uint(fnvHash(key))%uint(c.sliceNumber)]
}
get slice key
package fasthttpsession
import (
	"sync"
)
var (
	defaultSliceNumber = 32
)
type CCMap struct {
	sliceNumber int
	values      []*MapSlice
}
type MapSlice struct {
	lock  sync.RWMutex
	items map[string]interface{}
}
func NewDefaultCCMap() *CCMap {
	return NewCCMap(defaultSliceNumber)
}
func NewCCMap(sliceNumber int) *CCMap {
	ccMap := &CCMap{
		sliceNumber: sliceNumber,
		values:      make([]*MapSlice, sliceNumber),
	}
	for i := 0; i < sliceNumber; i++ {
		ccMap.values[i] = &MapSlice{
			items: make(map[string]interface{}),
		}
	}
	return ccMap
}
func fnvHash(key string) uint32 {
	hash := uint32(2166136261)
	const prime32 = uint32(16777619)
	for i := 0; i < len(key); i++ {
		hash *= prime32
		hash ^= uint32(key[i])
	}
	return hash
}