Redis客户端
Posted Richie Wen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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对象归还给连接池
- 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")
以上是关于Redis客户端的主要内容,如果未能解决你的问题,请参考以下文章