贴个链接供参考使用: redis-3.0.0.tar.gz
链接:https://pan.baidu.com/s/1wOBvnCdCm5zjeHRfvadwKQ
提取码:949t
<前提是有已安装Linux虚拟机可使用>
yum install gcc-c++
tar -zxvf redis-3.0.0.tar.gz
cd redis-3.0.0 --> make指令 进行编译!
make install PREFIX=/usr/local/redis
cd /usr/local/redis/bin/ --> ./redis-server
修改配置文件
cd /usr/local/redis/bin/redis.conf (从安装目录usr/redis/redis-3.0.0/redis.conf复制过来)
--> (daemonize对应的no改成yes)
--> 指令 ./redis-server redis.conf(后台启动)
ps aux|grep redis
root 9389 0.1 0.7 140848 7452 ? Ssl 16:00 0:00 ./redis-server *:6379
root 9429 0.0 0.0 112676 968 pts/0 R+ 16:01 0:00 grep --color=auto redis
3.4.1 Kill 9389 <进程号, 不是端口号>
3.4.2 ./redis-cli shutdown <通过客户端关闭>
./redis-cli -h 192.168.25.133 -p 6379
1.1 先进入bin目录 cd /usr/local/redis/bin/
1.2 然后启动客户端 ./redis-cli
1.3 测试是否启动成功
输入指令ping, 若响应PONG则表示启动成功,可以进行相关命令操作;
set str1 abc -->声明一字符串str1 值为abc
get str1 -->取出变量str1
Keys * -->取出所有的key值
Incr key1 -->给变量key1 +1
Decr key1 -->给变量key1 -1
Del key2 -->删除变量key2
hset hash1 filed1 1 -->给hash1里的filed1赋值为1
hget hash1 filed1 -->取出hash1里的filed1
hkeys hash1 -->查询hash1里的所有key值
hvals hash1 -->查询hash1里的所有value值
hgetall hash1 -->查询hash1里的所有key-value;
kdel hash1 filed1 --> 删除hash1里的filed1;
lpush list1 a b c d -->从左添加元素
lrange list1 0 -1 -->从左查询所有数据
rpush list1 1 2 3 4 -->从右...
lrange list1 0 -1 -->从右查询所有数据
Lpop list1 取左起第一个元素
Rpop list1 取右起第一个元素
## 数据设置过期时间, 以及数据持久化处理
Expire key second:设置key的过期时间
Ttl key:查看key的有效期
Persist key:清除key的过期时间。Key持久化。
略繁琐, 此处省略300字
redis.clients
jedis
@Test
public void testJedis() throws Exception {
// 第一步:创建一个Jedis对象。需要指定服务端的ip及端口。
Jedis jedis = new Jedis("192.168.25.133", 6379);
//Jedis jedis = new Jedis("192.168.1.103", 8082);
// 第二步:使用Jedis对象操作数据库,每个redis命令对应一个方法。
jedis.set("hello", "this is shanghai!");
String result = jedis.get("hello");
// 第三步:打印结果。
System.out.println(result);
// 第四步:关闭Jedis
jedis.close();
}
运行能正常打印出结果, 则ok
调用逻辑大概就是:
第一步: 注入JedisClient
第二步: 根据key查redis中是否存有对应的value值, 存在即返回, 不存在再去查询数据库, 这里起到缓解数据库压力的作用, 实际应用中一般会将经常被访问的一些数据同步到redis缓存中。
下面是封装的redis相关调用类
public interface JedisClient {
String set(String key, String value);
String get(String key);
Boolean exists(String key);
Long expire(String key, int seconds);
Long ttl(String key);
Long incr(String key);
Long hset(String key, String field, String value);
String hget(String key, String field);
Long hdel(String key, String... field);
Boolean hexists(String key, String field);
List hvals(String key);
Long del(String key);
}
public class JedisClientPool implements JedisClient {
@Autowired
private JedisPool jedisPool;
//构建bean额外添加的; by xiangyoulu 2018/3/18 ;
// public JedisClientPool(JedisPool jedisPool) {
// this.jedisPool=jedisPool;
// }
@Override
public String set(String key, String value) {
Jedis jedis = jedisPool.getResource();
String result = jedis.set(key, value);
jedis.close();
return result;
}
@Override
public String get(String key) {
Jedis jedis = jedisPool.getResource();
String result = jedis.get(key);
jedis.close();
return result;
}
@Override
public Boolean exists(String key) {
Jedis jedis = jedisPool.getResource();
Boolean result = jedis.exists(key);
jedis.close();
return result;
}
@Override
public Long expire(String key, int seconds) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.expire(key, seconds);
jedis.close();
return result;
}
@Override
public Long ttl(String key) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.ttl(key);
jedis.close();
return result;
}
@Override
public Long incr(String key) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.incr(key);
jedis.close();
return result;
}
@Override
public Long hset(String key, String field, String value) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.hset(key, field, value);
jedis.close();
return result;
}
@Override
public String hget(String key, String field) {
Jedis jedis = jedisPool.getResource();
String result = jedis.hget(key, field);
jedis.close();
return result;
}
@Override
public Long hdel(String key, String... field) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.hdel(key, field);
jedis.close();
return result;
}
@Override
public Boolean hexists(String key, String field) {
Jedis jedis = jedisPool.getResource();
Boolean result = jedis.hexists(key, field);
jedis.close();
return result;
}
@Override
public List hvals(String key) {
Jedis jedis = jedisPool.getResource();
List result = jedis.hvals(key);
jedis.close();
return result;
}
@Override
public Long del(String key) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.del(key);
jedis.close();
return result;
}
}
public class JedisClientCluster implements JedisClient {
@Autowired
private JedisCluster jedisCluster;
@Override
public String set(String key, String value) {
return jedisCluster.set(key, value);
}
@Override
public String get(String key) {
return jedisCluster.get(key);
}
@Override
public Boolean exists(String key) {
return jedisCluster.exists(key);
}
@Override
public Long expire(String key, int seconds) {
return jedisCluster.expire(key, seconds);
}
@Override
public Long ttl(String key) {
return jedisCluster.ttl(key);
}
@Override
public Long incr(String key) {
return jedisCluster.incr(key);
}
@Override
public Long hset(String key, String field, String value) {
return jedisCluster.hset(key, field, value);
}
@Override
public String hget(String key, String field) {
return jedisCluster.hget(key, field);
}
@Override
public Long hdel(String key, String... field) {
return jedisCluster.hdel(key, field);
}
@Override
public Boolean hexists(String key, String field) {
return jedisCluster.hexists(key, field);
}
@Override
public List hvals(String key) {
return jedisCluster.hvals(key);
}
@Override
public Long del(String key) {
return jedisCluster.del(key);
}
}
ok, 是有点略繁琐。。。