Redis
来源:互联网 发布:qq农场辅助软件 编辑:程序博客网 时间:2024/06/12 20:53
1. 在Linux的安装:
a) 首先创建安装文件的环境(联网输入代码):yum install gcc-c++;
b) 上传安装文件到/usr/local/目录下(默认安装文件路径);
c) 判断是否已经安装过了,如果安装过,进行卸载处理;
d) 解压缩,进入redis的文件夹,执行make产生机器码文件(可执行程序)
e) Make PREFIX=路径 install ---à将可执行程序安装到指定路径下
f) 开启服务器端: bin/redis-server
g) Cp redis-3.0.7(下载redis的版本)下面的redis.conf到/usr/local/redis下
h) Vi redis.conf将daemonize 改为yes
i) Vi /etc/sysconfig/iptables,放行6379端口
j) 启动服务: bin/redis-serverredis.conf
k) Bin/redis-cli.
2. Redis操作字符串:
a) 添加元素:set 键 值
b) 查找元素:get 键,如果键不存在,返回nil类似于null
c) 修改元素:set 已经存在的键 新值
d) 删除元素:del 键
3. Redis操作hash:
a) 添加元素:hset hash对象 键 值 hmset hash 键 值 键 值 …..
b) 查找元素:hget hash对象 键 hmsethash对象 键1,键2 hgetall hash对象
c) 删除元素:hdel hash对象 键 del 键
4、Redis 操作语法 ---- list(LinkedList)
增:lpush ----> 插入到头部
rpush----> 追加到尾部
查:lrange 键 索引1 索引2
索引1 --- 开始索引
索引2 --- 结束索引,可以使用 负数,-1 代表倒数第一个 -2 倒数第二个 ....
改:lset 键 索引 新值
删:lpop -----> 从头删
rpop-----> 从尾删
5、Redis 操作语法 ---- set(HashSet)
增:sadd 键 值1 值2.......
查:smembers 键
sismember键
删:srem 键 元素
集合运算:
sdiffA B ----> 属于A不属于B
sinterA B ---> 获取 A 与 B 的交集
sunionA B ---> 获取 A 与 B 的并集
6、Redis 操作语法 ---- sorted-set(TreeSet)
增:zadd 键名 分数1 元素1 分数2 元素2 ....
Sorted-set是排序的 set,那么必须声明排序依据(分数),元素必须和数值一起存储
查:zscore 键 元素 ----> 分数
zcard键 ----------> 元素个数
zrange键 开始索引 结束索引 (withscores) -----> 返回某个区间数据
注意:Sorted-set虽然是 set,但是排序了,因此也可以使用索引进行操作
zrevrange---------> 反序排列
改:zadd 键名 新分数 旧名称
删:zremrangebyscore 集合 开始分数 结束分数
zremrangebyrank集合 开始名次 结束名次
7、Redis 操作语法 ---- key 通用操作
增:redis 添加新数据增加键
查:keys * ----> 查询所有键
exists键 -> 查询某个键是否存在
type键 ---> 查询数据类型
expire键 整数(秒) ----> 设置键的生命周期
ttl键 ----> 查询剩余的存活时间
改:rename 原键 新键名
删:del 键名
8、Jedis
A、Redis 和 MySQL一样,也是数据库,最终也要和 Java 程序交互
B、MySQL 和 Java 交互使用JDBC,Redis 和 Java 交互使用 Jedis
Jedis 使用:
A、导 jar 包
B、获取连接
C、连接上操作 Redis 数据库
D、释放资源
Jedis 简单实现:
//1、获取一个连接对象
Jedisj = new Jedis("192.168.17.132",6379);
//2、操作数据
j.set("jedis","hello jedis");
System.out.println(j.get("jedis"));
//3、释放资源
j.close();
Jedis 高级(使用连接池,提高效率,节省资源):
GenericObjectPoolConfigpoolConfig = new JedisPoolConfig();
//设置连接池信息,设置最大连接数
poolConfig.setMaxTotal(100);
//设置最大空闲连接数
poolConfig.setMaxIdle(30);
//设置最大等待时间
poolConfig.setMaxWaitMillis(3000);
//创建连接池对象
JedisPooljp = null;
Jedisj =null;
try{
jp= new JedisPool(poolConfig , "192.168.17.132", 6379);
//从池中获取连接对象
j= jp.getResource();
System.out.println(j.get("jedis"));
}finally {
//使用完,存回连接池对象
if(j!= null){
j.close();
}
if(jp!= null){
jp.close();
}
}
9、Redis ---- 持久化
A、持久化 --- 就是将内存中的数据序列化到磁盘,进行持久化存储
B、Redis 实现持久化策略:
方式1: RDB(默认)
隔某个时间间隔,就对 redis 的数据进行一次持久化存储
优点:效率高
缺点:可能导致数据丢失、序列化是耗时操作,如果数据量大,可能导致 Redis 响应变慢
方式2: AOF(手动开启)
Redis一旦产生数据变动,就序列化到磁盘
缺点:效率低
优点:数据保存更及时,不会导致数据丢失
C、RDB 具体实现细节
save60 10000 在60秒内,如果数据变换10000次就序列化到磁盘
save300 10 在300秒内,如果数据变换10次就序列化到磁盘
save900 1 在900秒内,如果数据变换1次就序列化到磁盘
关于 RDB 的序列化策略
dbfilenamedump.rdb ---> 序列化后数据存储的文件
D、AOF 具体实现细节
appendonlyyes|no(使用或不使用)
always---- 一有改动就写入
everysec-- 一秒写一次
no-------- 禁用
appendonly.aof-----> 序列户后数据存储的文件
文件内容记录的 SQL 语句
E、序列化应用 ---- 数据恢复
F、Redis 可以同时启动多个(端口号不能重复)
- Redis
- redis
- Redis
- redis
- Redis
- redis
- Redis
- redis
- REDIS
- Redis
- Redis
- redis
- Redis
- Redis
- Redis
- Redis
- Redis
- Redis
- 利用单例+观察者设计一个简易的分发/订阅消息机制
- GA--sentence match
- Ubuntu14.04安装搜狗输入法
- 欢迎使用CSDN-markdown编辑器
- Java内部类详解
- Redis
- MySQL中utf8和utf8mb4的区别
- phpstrom下断点调试代码
- extern的用法
- ubuntu: kdevelop 未指定有效的可执行文件!
- 欢迎使用CSDN-markdown编辑器
- Spring对Hibernate的支持
- SQL连接查询总结和练习
- Struts2返回JSON数据