- 非关系型数据库 (NoSQL)
- key和value来存储数据
-
- 减缓数据库的压力(缓存)运行时将数据存储在内存中(**)
-
- 常用的数据加载到redis中,查询是先到redis中查询如果没有再到库里查询
- 3.完全当数据库来使用(可以持久化的操作)
- 4.session 共享 (**)
- 5.消息队列(Mq)
redis的安装:
- yum install -y tcl 插件
- 进入解压的文件夹下面 make进行安装
- cp redis-cli /usr/local/bin/
cofig - mkdir /etc/redis—->存放配置文件
- mkdir /var/redis
- mkdir /var/redis/log—-> 存放日志
- mkdir /var/redis/run 存放pid
- mkdir/var/redis/data 存放数据
- 8.进入redis根目录 复制配置文件
- cp redis.conf /etc/redis/redis_6379.conf
9.进入/etc/redis/目录 修改redis配置文件
bind 修改ip(如果是0.0.0.0表示任意的ip地址)
-对服务器的操作方法:
将 daemonize 改为yes –在后台运行
- 开启这redis-cli 进入界面
- get
- set
- del
- 以上都是在后台的服务器上面 取数据
- 关闭: 6379 shutdown
数据结构
- 以键值对进行对数据进行存储(单一的数据类型)
- key和value的类型一致
- 要么key和value都是为字符串(String类型)
- 要没key和value都为字节数组(byte[]类型)
value 有五种数据结构:
- String类型—>可保存一个单值的字符串或者字节数组
- List 结构—>链表可保存多个字符串或者字节数组
- set结构–>集合
- Zset结构–有序set集合 可保存多个字符串,或者字节数组
- Hash结构 哈希–>可以保存多个键值对字符串或者字节数组
导入jar包:commons-pool2-2.4.2 和jedis-2.9.0.jar两个jar包
- 获取Redis的连接对象
- 首先我们要清楚redis并非是线程安全的,当多线程进行访问的时候容易造成高并发,出现数据的脏读,所以我们要引入连接池
我们在使用这个redis的是后在java中怎么又变成了jedis这个本质就是一个操作redis的一个工具类,它提供了redis 的连接以及对redis的增删改的操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51package util;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.ShardedJedis;
import redis.clients.jedis.ShardedJedisPool;
/*
* 获取redis的连接类
* @author Administrator
*
*/
public class RedisUtil {
//非切片的客户端连接(普通的,单一的连接)
private Jedis jedis;
//非切片的客户端连接池---单机的Redis(单节点的)
private static JedisPool jedisPool;
//切片客户端的连接
private ShardedJedis shardedJedis;
//切片客户端的连接池
private ShardedJedisPool shardedJedisPool;
/**
* 静态代码块
*/
static{
//连接池的配置
JedisPoolConfig jedisPoolConfig =new JedisPoolConfig();
//设置最大的连接数
jedisPoolConfig.setMaxTotal(20);
//最大的活动的数量
jedisPoolConfig.setMaxIdle(20);
//最小的空闲数
jedisPoolConfig.setMinIdle(5);
jedisPool =new JedisPool(jedisPoolConfig,"10.0.152.223",6379);
}
/**
* 获取连接对象
*/
public static Jedis getJedix()
{
return jedisPool.getResource();
}
public static void main(String[] args) {
System.out.println(RedisUtil.getJedix());
}
}对字符串的方法:
- 有一个方法
1 |
|
- 对集合的操作:
- 无序集合的操作
1 | package util; |
- 有序集合:
1 | package util; |
- 链表的操作
1 | package util; |
- hash的操作:
1 | package util; |
- 如何将一个实体类对象的放入到redis 里:
- 序列化(仅可以自己使用)
- json
- xml