You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							48 lines
						
					
					
						
							994 B
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							48 lines
						
					
					
						
							994 B
						
					
					
				| package redis_store | |
| 
 | |
| import ( | |
| 	redis "gopkg.in/redis.v2" | |
| ) | |
| 
 | |
| type RedisStore struct { | |
| 	Client *redis.Client | |
| } | |
| 
 | |
| func NewRedisStore(hostPort string, database int) *RedisStore { | |
| 	client := redis.NewTCPClient(&redis.Options{ | |
| 		Addr:     hostPort, | |
| 		Password: "", // no password set | |
| 		DB:       int64(database), | |
| 	}) | |
| 	return &RedisStore{Client: client} | |
| } | |
| 
 | |
| func (s *RedisStore) Get(fullFileName string) (fid string, err error) { | |
| 	fid, err = s.Client.Get(fullFileName).Result() | |
| 	if err == redis.Nil { | |
| 		err = nil | |
| 	} | |
| 	return fid, err | |
| } | |
| func (s *RedisStore) Put(fullFileName string, fid string) (err error) { | |
| 	_, err = s.Client.Set(fullFileName, fid).Result() | |
| 	if err == redis.Nil { | |
| 		err = nil | |
| 	} | |
| 	return err | |
| } | |
| 
 | |
| // Currently the fid is not returned | |
| func (s *RedisStore) Delete(fullFileName string) (fid string, err error) { | |
| 	_, err = s.Client.Del(fullFileName).Result() | |
| 	if err == redis.Nil { | |
| 		err = nil | |
| 	} | |
| 	return "", err | |
| } | |
| 
 | |
| func (s *RedisStore) Close() { | |
| 	if s.Client != nil { | |
| 		s.Client.Close() | |
| 	} | |
| }
 |