来源: Redis实现中间件_brycegao321的博客-CSDN博客_redis中间件
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;
-
}
-
-
-
}
编写最简单的读写字符串示例: