code: private List<M> fetchDatasFromRedis(String... columns) {
  		// redis key
  		String key = this.redisColumnKey(SqlpKit.FLAG.ALL);
  		// fetch from redis
  		List<M> fetchDatas = this.redis().get(key);
  		if (null == fetchDatas) {
  			// fetch ids from db.
  			fetchDatas = this.find(SqlpKit.select(this, this.primaryKeys()));
  		}
  		
  		if (null == fetchDatas || fetchDatas.size() == 0) {
  			return fetchDatas;
  		}
  		//put ids to redis 
  		this.redis().setex(key, GlobalSyncRedis.syncExpire(), fetchDatas);
  		for (M m : fetchDatas) {
  			// fetch data from redis
  			if (null == m) {
  				continue;
  			}
  			m = this.fetchOne(m, columns);
  		}
  		return fetchDatas;
  	}
docs: Use the columns that must contains primary keys fetch Data from db, and use the fetched primary keys fetch from redis.
  @param columns