3.Redis客户端

java客户端 jedis

  • 获取
    • Maven依赖
  • 基本使用
    • Jedis jedis = new Jedis("127.0.0.1",6379)
    • string
      • jedis.set("helo","world")
      • jedis.get("hello")
      • jedis.incr("counter")
    • hash
      • jedis.hset("myhash","f1","v1");
      • jedis.hset("myhash","f2","v2");
      • jedis.hgetAll("myhash");
    • list
      • jedis.rpush("mylist","1")
      • jedis.rpush("mylist","2")
      • jedis.rpush("mylist","3")
      • jedis.lrange("mylist",0,-1)
    • set
      • jedis.sadd("myset","a")
      • jedis.sadd("myset","b")
      • jedis.sadd("myset","a")
      • jedis.smember("myset") ===> [b,a]
    • zset
      • jedis.zadd("myzset",99,"tom")
      • jedis.zadd("myzset",66,"peter")
      • jedis.zadd("myzset",33,"james")
      • jedis.zrangeWithScore("myzset")
  • 连接池使用
    • Jedis 直连
      • 每次连接都要新建一个连接对象 tcp三次握手
      • 结束操作后关闭连接
    • Jedis 连接池
      • 每次连接从连接池获取一个闲置的连接对象 直接使用
      • 返回执行结果后 将jedis对象归还给连接池
  • 方案对比

     优点缺点
    直连 简单
    适用于少量长期连接场景
    存在每次新建、关闭TCP开销
    资源无法控制,存在连接泄露的可能
    jedis连接线程不安全
    连接池 jedis预先生成,降低开销使用
    连接池的形式保护和控制资源使用
    相对直连,使用相对麻烦,尤其在资源的管理上
    需要很多参数保证,一旦规划以合理会出现问题
  • JedisPool使用

    • 初始化jedis连接池,通常来讲JedisPool是单例的。
    • poolConfig = new GemericObjectPoolConfig();
    • JedisPool jedisPool = new jedisPool(poolConfig,"127.0.0.1",6379)
    • try cach finally printStackTrace()

python客户单 redis-py

  • 获取
    • pip install/easy_install redis 源码安装
  • 基本使用
    • clinet = redis.StrictRedis(host="127.0.0.1",6379)
    • string True
      • clinet.set("hello","python-redis")
      • client.get("hello")
      • client.incr("counter")
    • hash
      • client.hset("myhash","f1","v1");
      • client.hset("myhash","f2","v2");
      • client.hgetAll("myhash");
    • list
      • client.rpush("mylist","1")
      • client.rpush("mylist","2")
      • client.rpush("mylist","3")
      • client.lrange("mylist",0,-1)
    • set
      • client.sadd("myset","a")
      • client.sadd("myset","b")
      • client.sadd("myset","a")
      • client.smember("myset") ===> [b,a]
    • zset
      • client.zadd("myzset",99,"tom")
      • client.zadd("myzset",66,"peter")
      • client.zadd("myzset",33,"james")
      • client.zrange("myzset",0,-1,withscores=True)

Go客户端 redigo

  • 选择客户端
    • Radix
    • Redgo
  • 基本使用
    • c, err := redis.Dial("tcp","127.0.0.1:6379")
    • if err != nil { fmt.Println(err) return }
    • defer c.Close()
  • 简单使用-命令
    • c.DO("SET","hello","world")
    • c.DO("GET","hello")
原文地址:https://www.cnblogs.com/richiewlq/p/12182543.html