aboutsummaryrefslogtreecommitdiff
path: root/weed/filer/redis_store/redis_store.go
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2016-06-02 18:09:14 -0700
committerChris Lu <chris.lu@gmail.com>2016-06-02 18:09:14 -0700
commit5ce6bbf07672bf3f3c8d26cd2ce0e3e853a47c44 (patch)
tree2e4dd2ad0a618ab2b7cdebcdb9c503526c31e2e8 /weed/filer/redis_store/redis_store.go
parentcaeffa3998adc060fa66c4cd77af971ff2d26c57 (diff)
downloadseaweedfs-5ce6bbf07672bf3f3c8d26cd2ce0e3e853a47c44.tar.xz
seaweedfs-5ce6bbf07672bf3f3c8d26cd2ce0e3e853a47c44.zip
directory structure change to work with glide
glide has its own requirements. My previous workaround caused me some code checkin errors. Need to fix this.
Diffstat (limited to 'weed/filer/redis_store/redis_store.go')
-rw-r--r--weed/filer/redis_store/redis_store.go48
1 files changed, 48 insertions, 0 deletions
diff --git a/weed/filer/redis_store/redis_store.go b/weed/filer/redis_store/redis_store.go
new file mode 100644
index 000000000..939172557
--- /dev/null
+++ b/weed/filer/redis_store/redis_store.go
@@ -0,0 +1,48 @@
+package redis_store
+
+import (
+ redis "gopkg.in/redis.v2"
+)
+
+type RedisStore struct {
+ Client *redis.Client
+}
+
+func NewRedisStore(hostPort string, password string, database int) *RedisStore {
+ client := redis.NewTCPClient(&redis.Options{
+ Addr: hostPort,
+ Password: password,
+ 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()
+ }
+}