1)安装redis编译的c环境,yum install gcc tcl
2)将redis-2.8.3.tar.gz上传到Linux系统中
3)解压tar -zxvf redis-2.8.3.tar.gz
4)进入redis-2.8.3目录,编译安装make && make PREFIX=/usr/local/src/redis install
5)配置后端启动:拷贝redis-2.8.3中的redis.conf到安装目录redis中
cp /usr/local/src/redis-2.8.3/redis.conf /usr/local/src/redis/bin/
然后修改这个文件vim /usr/local/src/redis/bin/redis.conf
daemonize no 将no改成yes
6)配置环境变量vim ~/.bashrc
#redis
REDIS_HOME=/usr/local/src/redis
PATH=$PATH:$REDIS_HOME/bin
更新环境变量source ~/.bashrc
7-1)启动方式一:./bin/redis-server
7-2)启动方式二:./redis-server redis.conf
8)其他命令
#互交命令
redis-cli
#进入互交后退出命令
exit
#停止redis服务命令
redis-cli shutdown
1)解压tar -zxvf redis-3.0.4.tar.gz
2)安装ruby脚本yum -y install ruby rubygems
3)安装槽位脚本gem install --local redis-3.3.0.gem
4)编译安装redis(进入解压后目录)make && make PREFIX=/usr/local/src/redis/ install
5)分别进入每个文件。启动redis
6)进入源码包redis-3.0.4/src目录找到
7)执行脚本./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
8)使用客户端互交测试
9)主备切换
切断7000
从列表头部开始删除值等于value的元素count次,LIST 可以重复出现
LREM key count value
count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count
count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值
count = 0 : 移除表中所有与 value 相等的值
去除指定范围 外 元素
LTRIM key start stop
阻塞
如果弹出的列表不存在或者为空,就会阻塞
超时时间设置为0,就是永久阻塞,直到有数据可以弹出
如果多个客户端阻塞在同一个列表上,使用First In First Service原则,先到先服务
左右或者头尾阻塞弹出元素
BLPOP key [key ...] timeout
BRPOP key [key ...] timeout
从一个列表尾部阻塞弹出元素压入到另一个列表的头部
BRPOPLPUSH source destination timeout
由field和关联的value组成的map键值对
field和value是字符串类型
一个hash中最多包含2^32-1键值对
无序的、去重的
元素是字符串类型
最多包含2^32-1元素
类似Set集合
有序的、去重的
元素是字符串类型
每一个元素都关联着一个浮点数分值(Score),并按照分值从小到大的顺序排列集合中的元素。分值可以相同
最多包含2^32-1元素
自动执行
本质上就是BGSAVE
默认配置
save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb
dir /var/lib/redis/6379
只要上面三个条件满足一个,就自动执行备份。
创建RDB文件之后,时间计数器和次数计数器会清零。所以多个条件的效果不是叠加的
AOF重写配置项举例
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
appendonly no / yes
当AOF文件大于64MB时候,可以考虑重写AOF文件
只有当AOF文件的增量大于起始size的100%时(就是文件大小翻了一倍),启动重写
默认关闭,请开启
package com.tzy.jedis;
import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class JedisTest {
//通过 java程序访问redis数据库
@Test
//获得单一的jedis对象操作数据库
public void test1(){
//获得会话(链接)对象
//ip是虚拟机的
Jedis jedis = new Jedis("192.168.246.130", 6379);
//获得数据
String username = jedis.get("username");
System.out.println(username);
//储存
jedis.set("addr", "四川");
System.out.println(jedis.get("addr"));
}
@Test
//通过jedis的poll获得jedis链接对象
public void test2(){
//创建池子配置
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxIdle(30);//最大闲置个数
poolConfig.setMinIdle(10);//最小闲置个数
poolConfig.setMaxTotal(50);//最大连接数
//创建一个jedis的连接池
JedisPool pool = new JedisPool(poolConfig, "192.168.246.130", 6379);
//从池子中获取redis的链接资源
Jedis jedis = pool.getResource();
jedis.set("xxx", "yyyy");//不能存对象,可以转成json字符串
System.out.println(jedis.get("xxx"));
//关闭资源
jedis.close();
pool.close();//真正的开发中不关
}
}
redis.MaxIdle=30
redis.MinIdle=10
redis.MaxTotal=50
redis.url=192.168.246.130
redis.port=6379
package com.tzy.jedis;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class JedisPoolUtil {
private static JedisPool pool = null;
static{
//加载配置资源
InputStream in = JedisPoolUtil.class.getClassLoader().getResourceAsStream("redis.properties");
Properties pro = new Properties();
try {
pro.load(in);
} catch (IOException e) {
e.printStackTrace();
}
//获得池子对象
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxIdle(Integer.parseInt(pro.get("redis.MaxIdle").toString()));//最大闲置个数
poolConfig.setMinIdle(Integer.parseInt(pro.get("redis.MinIdle").toString()));//最小闲置个数
poolConfig.setMaxTotal(Integer.parseInt(pro.get("redis.MaxTotal").toString()));//最大连接数
pool = new JedisPool(poolConfig, pro.get("redis.url").toString(),Integer.parseInt(pro.get("redis.port").toString()));
}
//获得jedis资源的方法
public static Jedis getJedis(){
return pool.getResource();
}
public static void main(String[] args) {
Jedis jedis = getJedis();
System.out.println(jedis.get("xxx"));
}
}
原文:https://www.cnblogs.com/ttzzyy/p/10638186.html