Redis是key-value方式储存数据的内存数据库。
下载后解压,redis-server.exe是redis服务,启动之后就可以使用redis。
redis-cli.exe是客户端,可以访问本地或远程的redis。
redis-cli.exe -h 127.0.0.1 -p 6379 命令行命令。修改-h后的ip地址就可以访问远程redis。
set命令用来设值
get命令用来取值
keys命令用来查询key
type命令用来查询key对应的value值的类型
命令大小写不敏感,但后面的参数大小写敏感
可以使用正则表达式查询key
keys Bas* 查询Bas开头的key
keys [^Bas]* 查询不是Bas开头的key
不过还是存在很多正则表达式不能使用和不同的情况
keys default[^(]* 匹配不到default 匹配规则不正确,[^(]不会匹配空
keys default|default[^(]* 匹配不到default 不支持或|,或|被认为是普通字符
|()被认为是普通字符
'"被认为是特殊符号,能让引号内的内容成为一个整体
keys中可以包含空格和\n (注意,1.2以前版本不支持。)
set 'aaa bbb' aaa
keys 'aaa *'
set 'mykey\n' aaa 保存后keys * 显示为 mykey\\n
keys 'mykey\*' 找不到
keys 'mykey\\n' 能找到
为了在java项目中使用,需要引入jedis-2.1.0.jar和commons-pool-1.5.6.jar
/**
* Jedis 连接池JedisPool 解决connection timeout问题
*
*/
public void test(){
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxActive(100);
config.setMaxIdle(20);
config.setMaxWait(1000l);
//需要JedisPool依赖apache类包commons-pool-1.5.6.jar
JedisPool pool = new JedisPool(config, "localhost",6379 );
Jedis jedis = null;
boolean borrowOrOprSuccess = true;
try {
jedis = pool.getResource();
//jedis.auth("redis密码");
jedis.set("aa", "1000");
Map map = new HashMap();
map.put("id", "1000");
map.put("username", "aaa");
jedis.hmset("user", map);
System.out.println(jedis.get("aa"));
System.out.println(jedis.hget("user", "username"));
} catch (JedisConnectionException e) {
borrowOrOprSuccess = false;
if (jedis != null)
pool.returnBrokenResource(jedis);
} finally {
if (borrowOrOprSuccess)
pool.returnResource(jedis);
}
}