环境:CentOS7,redis版本:redis-3.2.8
Redis 下载: https://redis.io/
1. 解压安装包
2. 编译(到解压的redis目录下执行make命令),编译过程中发下了有各种各样的警告,但是我没有管,依然编译完成后再进行了一次make
3. 启动服务:进入redis 的 src目录下执行:(命令规则:./redis-server + 空 + 自定义配置 + 空 + &)
./redis-server ../redis.conf &
出现 Redis 的Logo就表示启动服务成功了
由于我觉得用作于持久数据库不太喜欢,只想把 Redis 用作于缓存使用,取代memcached
先 kill 服务进程,修改配置(redis/redis.conf)
4. 屏蔽 bind IP (因为我想直接在局域网任何人都可以链接,所以屏蔽,免得导致 jedis 链接时出毛病)
#bind 127.0.0.1
5. 找到 requirepass 取消屏蔽,后面的修改为自己想要的密码如:requirepass abcd666
requirepass abcd666
6. 找到Redis自动持久的规则,屏蔽掉
(分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改。)
7. 找到 maxmemory 启用,以及下面的 maxmemory-policy 回收策略
maxmemory 100mb #表示最大占用多少内存
maxmemory-policy allkeys-lru #使用什么回收策略
当 maxmemory 限制达到的时候 Redis 会使用的行为由 Redis 的 maxmemory-policy 配置指令来进行配置:
noeviction:返回错误当内存限制达到并且客户端尝试执行会让更多内存被使用的命令(大部分的写入指令,但DEL和几个例外)
allkeys-lru: 尝试回收最少使用的键(LRU),使得新添加的数据有空间存放。
volatile-lru: 尝试回收最少使用的键(LRU),但仅限于在过期集合的键,使得新添加的数据有空间存放。
allkeys-random: 回收随机的键使得新添加的数据有空间存放。
volatile-random: 回收随机的键使得新添加的数据有空间存放,但仅限于在过期集合的键。
volatile-ttl: 回收在过期集合的键,并且优先回收存活时间(TTL)较短的键,使得新添加的数据有空间存放。
使用指定配置方式启动服务:
./redis-server ../redis.conf &
使用客户端尝试:
./redis-cli -h 192.168.1.168 -p 10086 -a abcd666 #这是比较明确的登录方式,
./redis-cli -a abcd666 #也可以这样简洁登录
如果配置了密码且登录的时候不输入密码也可以登录,但在查询时就会提示:
网上搜了搜好像用得多的就是 Jedis,由于只是想弄一个简单的例子所以没有使用Maven来建项目
我喜欢在Maven仓库去下载jar:
http://central.maven.org/maven2/redis/clients/jedis/2.9.0/jedis-2.9.0.jar
下面是一个简单的例子,需要了解更多可以自行Google或到官网API
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import redis.clients.jedis.Jedis;
public class TestRedis {
private Jedis jedis;
public TestRedis() {
//连接redis服务器
jedis = new Jedis("192.168.1.168", 6379);
//权限认证
jedis.auth("abcd666");
}
public static void main(String[] args) {
TestRedis t = new TestRedis();
t.testString();
}
/**
* redis存储字符串
*/
public void testString() {
jedis.set("name","zhangsan");
System.out.println(jedis.get("name"));
jedis.append("name", " is 张三"); //拼接
System.out.println(jedis.get("name"));
jedis.del("name"); //删除某个键
System.out.println(jedis.get("name"));
//设置多个键值对
jedis.mset("name","莉莉安","age","18","sex","女");
jedis.incr("age"); //进行加1操作
jedis.expire("name", 10000);//设置过期时间
System.out.println(jedis.get("name") + "-" + jedis.get("age") + "-" + jedis.get("sex"));
System.out.println("---> "+jedis.dbSize());//键值对有多少个了
}
}
到这里就完毕了,可以跑出个结果: