java redis管理_管理工具和java操作redis

第一步 下載好redis和管理工具

為了方便下載,我這里分享了自己的工具,百度鏈接:http://pan.baidu.com/s/1qYfQlsS 密碼:kgxk

我這是redis 3.0.1 win64版的,目錄結構如下:

940a390e9161105a0ec8446b07177cd8.png

第二步 雙擊redis-server.exe啟動redis,默認本地IP,端口6379 界面如下:

bc8cce5eaa3e6a91fad5411de8656f10.png

然后安裝好redis管理工具(RedisDesktopManager),並打開如圖:

46f205143ef58989b89b8c0c195bd326.png

當然左邊的redis連接列還沒有,還得建立連接。

點擊add New Connection,添加剛剛啟動的redis連接 。如圖:

58eef758701d24e7cb42e5fb9534c433.png

給要連接的redis一個名稱,然后ip 可以是localhost或127.0.0.1,端口6379。若給redis設置過密碼,則需要填寫Auth,然后ok就好了,左邊會顯示你已連接的redis。

比如點開redis1,展開redis1的數據,目前只存了db0,點擊具體數據項后右邊顯示具體數據,可修改刪除。如圖:

90c2b15439b305e7fc9f4aeb8594372e.png

第三步 java操作redis

java操作redis,需要導入jedis.jar 包,我上傳了jedis-2.4.2.jar。代碼上和jdbc也差不太多,下面我就直接貼代碼了:package redis;

import redis.clients.jedis.JedisPool;

import redis.clients.jedis.JedisPoolConfig;

/**

* 取redis 連接池

*/

public class RedisClientPool{

public static RedisClientPool redisClientPool = getInstance();

public static JedisPool jedisPool;

public static synchronized RedisClientPool getInstance()

{

if (null == redisClientPool){

redisClientPool = new RedisClientPool();

}

return redisClientPool;

}

public RedisClientPool(){

if (null == jedisPool){

init();

}

}

/**

* 初始化Jedis

*

*

*@return

*@see [類、類#方法、類#成員]

*/

private static JedisPoolConfig initPoolConfig(){

JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();

// 控制一個pool最多有多少個狀態為idle的jedis實例

jedisPoolConfig.setMaxIdle(1000);

// 最大能夠保持空閑狀態的對象數

jedisPoolConfig.setMaxIdle(300);

// 超時時間

jedisPoolConfig.setMaxWaitMillis(1000);

// 在borrow一個jedis實例時,是否提前進行alidate操作;如果為true,則得到的jedis實例均是可用的;

jedisPoolConfig.setTestOnBorrow(true);

// 在還會給pool時,是否提前進行validate操作

jedisPoolConfig.setTestOnReturn(true);

return jedisPoolConfig;

}

/**

* 初始化jedis連接池

*/

public static void init(){

JedisPoolConfig jedisPoolConfig = initPoolConfig();

String host = "localhost";

int port = 6379;

int timeout = 100000;

//String password = "@caoyn";

// 構造連接池

jedisPool = new JedisPool(jedisPoolConfig, host, port, timeout);

}

public static void main(String[] args) {

RedisClientPool redisClientPool1 = getInstance();

redisClientPool1.jedisPool.getResource().append("name", "曹大達");

System.out.println("已緩存成功");

}

}

下面直接使用redis連接池:package redis;

import redis.RedisClientPool;

import java.util.List;

import java.util.Map;

import java.util.concurrent.ConcurrentHashMap;

import redis.clients.jedis.Jedis;

/**

* redis 操作api

*/

public class RedisClient

{

/**

* 保存數據 類型為 Map

*

*

*@param flag

*@param mapData

*@see [類、類#方法、類#成員]

*/

public static void setMapDataToRedis(String flag,Map mapData)

{

Jedis redisClient = null;

try

{

redisClient = RedisClientPool.jedisPool.getResource();

redisClient.hmset(flag,mapData);

}

catch (Exception e)

{

// 銷毀對象

RedisClientPool.jedisPool.returnBrokenResource(redisClient);

}

finally

{

// 還原到連接池

RedisClientPool.jedisPool.returnResource(redisClient);

}

}

/**

* 保存數據 類型為 key-value

*

*

*@param flag

*@param field

*@param value

*@see [類、類#方法、類#成員]

*/

public static void setDataToRedis(String flag,String field,String value)

{

Jedis redisClient = null;

try

{

redisClient = RedisClientPool.jedisPool.getResource();

redisClient.hset(flag, field, value);

}

catch (Exception e)

{

// 銷毀對象

RedisClientPool.jedisPool.returnBrokenResource(redisClient);

}

finally

{

// 還原到連接池

RedisClientPool.jedisPool.returnResource(redisClient);

}

}

/**

* 獲取Map數據

*

*

*@param flag

*@return

*@see [類、類#方法、類#成員]

*/

public static Map getMapData(String flag)

{

Map dataMap = null;

Jedis redisClient = null;

try

{

redisClient = RedisClientPool.jedisPool.getResource();

dataMap = redisClient.hgetAll(flag);

}

catch (Exception e)

{

// 銷毀對象

RedisClientPool.jedisPool.returnBrokenResource(redisClient);

}

finally

{

// 還原到連接池

RedisClientPool.jedisPool.returnResource(redisClient);

}

return dataMap;

}

public static long deleteData(String flag)

{

long result = 0;

Jedis redisClient = null;

try

{

redisClient = RedisClientPool.jedisPool.getResource();

result = redisClient.del(flag);

}

catch (Exception e)

{

// 銷毀對象

RedisClientPool.jedisPool.returnBrokenResource(redisClient);

}

finally

{

// 還原到連接池

RedisClientPool.jedisPool.returnResource(redisClient);

}

return result;

}

/**

* 根據key和字段獲取數據

*

*

*@param flag

*@param field

*@return

*@see [類、類#方法、類#成員]

*/

public static String getData(String flag,String field)

{

String data = null;

Jedis redisClient = null;

try

{

redisClient = RedisClientPool.jedisPool.getResource();

data = redisClient.hget(flag, field);

}

catch (Exception e)

{

// 銷毀對象

RedisClientPool.jedisPool.returnBrokenResource(redisClient);

}

finally

{

// 還原到連接池

RedisClientPool.jedisPool.returnResource(redisClient);

}

return data;

}

public static void main(String[] args) throws Exception{

RedisClient.testMap();

}

public static void testList()

{

Jedis redis = RedisClientPool.jedisPool.getResource();

//hset key field value將哈希表key中的域field的值設為value。

redis.hset("table", "field1", "value1");

redis.hset("table", "field2", "value2");

redis.hset("table", "field3", "value3");

//返回哈希表key中,一個或多個給定域的值。

List list = redis.hmget("table","field1","field2","field3");

for(String tmp : list)

{

System.out.println(tmp);

}

}

public static void testMap()

{

//同時將多個field - value(域-值)對設置到哈希表key中。

Map map = new ConcurrentHashMap();

for (int i = 0;i < 10000;i++){

map.put("field"+i, "value"+i);

}

if (null != getData("table", "field1")){

deleteData("table");

}

//得到map下面的username的值

Map maps = getMapData("table");

System.out.println(maps.size());

setMapDataToRedis("table",map);

//HGETALL key返回哈希表key中,所有的域和值。

maps = getMapData("table");

System.out.println(maps.size());

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值