1. Redis简介
介绍Redis之前,先了解下NoSQL (Not noly SQL)不仅仅是SQL
属于非关系型数据库;
Redis就属于非关系型数据库
传统的Mysql ,oracle ,sql server 等 都是关系型数据库
为什么需要NoSQL,主要应对以下问题,传统关系型数据库力不从心
- High performance -高并发读写
- Huge Storage-海量数据的高效率存储和访问
- High Scalablility && High Availability 高可扩展性和高可用性
- NoSQL 产品 MongoDB Redis等等 Redis目前主流
NoSQL的特点
- 易扩展
- 灵活的数据模型
- 大数据量,高性能
- 高可用
高性能键值对数据库,支持的键值数据类型
- 字符串类型
- 列表类型
- 有序集合类型
- 散列类型
- 集合类型
应用场景
- 缓存
- 任务队列
- 网站访问统计
- 数据过期处理
- 应用排行榜
- 分布式集群架构中的session分离
2. wget方式 下载redis压缩包,并解压,以及编译
下载:
解压:
tar -zxvf redis-4.0.8.tar.gz
编译:
cd redis-4.0.8
make
3. 安装redis
安装:
cd src
make install PREFIX=/usr/local/redis
移动配置文件到安装目录下 :
cd ../
mkdir /usr/local/redis/etc
cp redis.conf /usr/local/redis/etc
配置redis为后台启动 :
vi /usr/local/redis/etc/redis.conf
将daemonize no 改成daemonize yes
将redis加入到开机启动 :
vi /etc/rc.local
//在里面添加内容:/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
4. 启动与停止redis:
启动:
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
通过ps -ef | grep -i redis命令来搜索redis服务 :
[root@luyuhui bin]# ps -ef | grep -i redis
root 589 1 0 09:49 ? 00:00:00 ./redis-server 127.0.0.1:6379
root 599 29679 0 09:50 pts/0 00:00:00 grep --color=auto -i redis
通过shutdown命令来停止redis服务的运行 :
[root@luyuhui redis]#/usr/local/redis/bin/redis-cli shutdown
[root@luyuhui redis]# ps -ef | grep -i redis
root 628 29679 0 10:03 pts/0 00:00:00 grep --color=auto -i redis
[root@luyuhui redis]#
常用命令:
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf //启动redis
pkill redis //停止redis
/usr/local/redis/bin/redis-cli shutdown //停止
卸载redis:rm -rf /usr/local/redis //删除安装目录
rm -rf /usr/bin/redis-* //删除所有redis相关命令脚本
rm -rf /root/redis-4.0.8 //删除redis解压文件夹
5. redis基本使用
key:value格式
[root@luyuhui redis]# ./bin/redis-cli
127.0.0.1:6379> set name luyuhui
OK
127.0.0.1:6379> get name
"luyuhui"
127.0.0.1:6379> keys *
- "name"
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379>
通过set设置,通过get获取
通过del删除key,
keys * 显示所有keys
6. 客户机测试redis连通性及解决方案:
- 端口问题
解决方案:
修改下 redis配置文件 redis.conf
将bind 127.0.0.1 注释掉
- redis自我保护 拒绝访问
解决方案:
方案1(关闭redis的自我保护--不推荐):
修改下 redis配置文件 redis.conf
将protected-mode yes 改为no
方案2(设置密码):
[root@luyuhui ~]# cd /usr/local/redis/bin/
[root@luyuhui bin]# ./redis-cli
127.0.0.1:6379> config set requirepass 123456
OK
127.0.0.1:6379> quit
[root@luyuhui bin]# ./redis-cli
127.0.0.1:6379> set name luyuhui
(error) NOAUTH Authentication required.
127.0.0.1:6379> auto 123456
(error) ERR unknown command 'auto'
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> set name luyuhui
OK
7. Jedis测试redis连通性
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
import redis.clients.jedis.Jedis;
public class JedisTest {
public static void main(String[] args) {
Jedis jedis=new Jedis("xxx.xx.xxx.xxx",6379); // 创建客户端 设置IP和端口
jedis.auth("123456"); // 设置密码
jedis.set("name", "luyuhui"); // 设置值
String value=jedis.get("name"); // 获取值
System.out.println(value);
jedis.close(); // 释放连接资源
}
}