说明
Redis大家都不陌生
自己也只是简单使用过
对于java web, Redis有对应封装好的类
Jedis
这里,简单记录下使用
由于内容太少,所以简单写下安装等操作
充充字数
Redis的安装和使用 (windows)
- 百度,找到redis的安装
- 安装完毕后,找到redis对应的文件夹,用命令行输入
redis-server.exe redis.windows.conf
- 启动服务
- 再重新打开一个窗口,输入
-
redis-cli.exe -h 127.0.0.1 -p 6379
启动 -
set dodo 123
存入key为dodo,value为123 -
get dodo
取出key为dodo的值 -
get aadbad
key不存在,返回nil
-
Jedis的Maven配置以及类
Jedis版本比较多
自己找到的代码可能已经很旧,先能运行,具体后期再修改
- 找到对应的jedis的pom配置
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.8.0</version>
</dependency>
- clean下载依赖后,就可以使用了
- 简单封装
- 也就是简单的初始化,set,get方法
初始化
public static JedisPool getPool(){
if(jedisPool == null){
JedisPoolConfig config = new JedisPoolConfig();
//控制一个pool可分配多少个jedis实例,通过pool.getResource()来获取;
//如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。
config.setMaxTotal(500);
//控制一个pool最多有多少个状态为idle(空闲的)的jedis实例。
config.setMaxIdle(5);
//表示当borrow(引入)一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException;
config.setMaxWaitMillis(1000 * 100);
//在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;
config.setTestOnBorrow(true);
jedisPool = new JedisPool(config, REDIS_HOST, REDIS_PORT);
}
return jedisPool;
}
set
/**
* set
* @param key
* @param value
* @return
*/
@SuppressWarnings("deprecation")
public byte[] set(byte[] key,byte[] value){
Jedis jedis = jedisPool.getResource();
try{
jedis.set(key,value);
if(this.expire != 0){
jedis.expire(key, this.expire);
}
}finally{
jedisPool.returnResource(jedis);
}
return value;
}
/**
* set
* @param key
* @param value
* @param expire
* @return
*/
@SuppressWarnings("deprecation")
public byte[] set(byte[] key,byte[] value,int expire){
Jedis jedis = jedisPool.getResource();
try{
jedis.set(key,value);
if(expire != 0){
jedis.expire(key, expire);
}
}finally{
jedisPool.returnResource(jedis);
}
return value;
}
get
/**
* get value from redis
* @param key
* @return
*/
@SuppressWarnings("deprecation")
public byte[] get(byte[] key){
byte[] value = null;
Jedis jedis = jedisPool.getResource();
try{
value = jedis.get(key);
}finally{
jedisPool.returnResource(jedis);
}
return value;
}
删除
/**
* del
* @param key
*/
@SuppressWarnings("deprecation")
public void del(byte[] key){
Jedis jedis = jedisPool.getResource();
try{
jedis.del(key);
}finally{
jedisPool.returnResource(jedis);
}
}
简单测试
上面简单封装了一个 JedisApi 类
这里先for循环,添加一个a到z的list
再存入对应的值
public static ArrayList<String> strList = new ArrayList<String>();
{
for(int i= 97; i<=122; i++){
strList.add((char)i+"");
}
}
public void doRedis01(){
JedisApi ja = new JedisApi();
ja.getPool();
for(int i=0; i<strList.size();i++){
ja.set((strList.get(i)+"Key").getBytes(), (strList.get(i)+"Value").getBytes());
}
for(int i=0; i<strList.size();i++){
System.out.println(new String(ja.get((strList.get(i)+"Key").getBytes())));
}
}
运行后,可以for循环取出对应的值:
aValue
bValue
cValue
dValue
eValue
fValue
gValue
hValue
iValue
jValue
kValue
lValue
mValue
nValue
oValue
pValue
qValue
rValue
sValue
tValue
uValue
vValue
wValue
xValue
yValue
zValue
我们可以从命令行,调用:
也可以查看对应的值
后续
每个工具其实都不难
东西和代码都很简单(当然,下面Redis的实现肯定很复杂)
对于现在的我们,重要的是活学活用