Redis基本教程: http://www.runoob.com/redis/redis-tutorial.html
其实Redis很简单,就是充当缓存的作用, 不能替代MySQL(及其它)数据库。 做个比喻: 数据库就相当于硬盘,Redis就相当于内存, 在Redis里读写数据更快。 Redis一般作为中间件,服务将数据缓存到Redis里, 但必须要注意跟数据库的同步问题!!!
原则:先在Redis里查,如果查不到再去数据库查, 并保持结果到Redis里。
因为Redis使用关键字读写键值的, 如果多个团队使用同一个Redis服务, 那么很可能出现关键字冲突的问题。 解决办法有2个:
1、 为每个团队分配不同的关键字前缀, 例如 jkcom_user***,jkcom_sell***等。
2、 每个团队使用不同的database, 同一个database要保证key不同,不同database的key可以相同。 (PS
: 每个database都是独立的存储空间, 在redis.conf配置,默认有16个,即SELECT 0~SELECT 15。)
# Set the number of databases. The default database is DB 0, you can select
# a different one on a per-connection basis using SELECT <dbid> where
# dbid is a number between 0 and 'databases'-1
databases 16
在redis目录里执行./src/redis-server启动redis服务, 默认使用redis.conf配置文件。
执行./src/redis-cli连接到客户端。
API说明:http://docs.spring.io/spring-data/redis/docs/current/api/
Maven包最新代码地址:
spring-data-redis: https://mvnrepository.com/artifact/org.springframework.data/spring-data-redis
jedis: https://mvnrepository.com/artifact/redis.clients/jedis
public class RedisProvider {
protected static JedisPool jedispool;
static{
ResourceBundle bundle = ResourceBundle.getBundle("redis"); //读取redis.properties文件
if (bundle == null) {
throw new IllegalArgumentException(
"[redis.properties] is not found!");
}
try {
JedisPoolConfig jedisconfig = new JedisPoolConfig();
jedisconfig.setMaxIdle(Integer.valueOf(bundle
.getString("redis.pool.maxIdle")));
jedisconfig.setTestOnBorrow(Boolean.valueOf(bundle
.getString("redis.pool.testOnBorrow")));
jedisconfig.setTestOnReturn(Boolean.valueOf(bundle
.getString("redis.pool.testOnReturn")));
jedispool = new JedisPool(jedisconfig, bundle.getString("redis.ip"),
Integer.valueOf(bundle.getString("redis.port")),
Integer.valueOf(bundle.getString("redis.timeout")),
bundle.getString("redis.password"),
Integer.valueOf(bundle.getString("redis.database")));
} catch (Exception ex) {
ex.printStackTrace();
}
}
public static Jedis getJedis() {
Jedis jedis = null;
try {
jedis = jedispool.getResource();
} catch (JedisConnectionException jce) {
jce.printStackTrace();
}
return jedis;
}
}
编写最简单的读写字符串示例: