1. Redis 简介
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
关系型数据库:mysql
非关系型数据库:Hbase redis MongoDB
Redis 与其他 key - value 缓存产品有以下三个特点:
-
Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
-
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
-
Redis支持数据的备份,即master-slave模式的数据备份。
Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。
基于内存的,可以持久化到磁盘中,运行速度快
2 Redis 安装
名称 | 作用 |
---|---|
redis-3.2.9.tar.gz | redis 的客户端是运行在 linux 上的核心tar |
redis-desktop-manager-0.9.3.817.exe | 用于从 windows 连接到 redis |
gcc | 编译 redis |
下载好之后,将 redis-3.2.9.tar.gz 上传到 linux 进行解压
$ tar -xvf redis-3.2.9.tar.gz -C apps/redis/
安装
-
通过 yum 下载 gcc
$ yum install -y gcc
注意:查看命令执行结果,如果无法安装,注意本地镜像可能需要重新挂载
$ umount /mnt/cdrom/ $ mount /dev/cdrom/ /mnt/cdrom/
-
$ make MALLOC=libc
-
$ sudo make install
-
$ redis-
按住 Tab 键,一定要 按住 Tab
这样说明安装成功了!
3 测试环境
修改 Redis 默认配置
-
在(/root/apps/redis/redis-3.2.9)目录中执行
$ cp redis.conf ../
复制一份配置文件到上级目录
-
进入到上一级目录
$ cd ../
-
修改该路径下的配置文件内容
# 指定 redis ip bind 127.0.0.1 192.168.137.101 # 指定是否可以在后台运行 daemonize yes # 指定为是否可以写入 appendonly yes
-
后台启动服务端
$ redis-server ~/app/redis/redis.conf &
-
启动客户端
$ redis-cli -h 192.168.99.112
4 k-v 操作
set key value [EX seconds] [PX milliseconds] [NX|XX]
$ set name xiaoming
OK
$ get name
"xiaoming"
$ set name 22
OK
$ set name libai
$ get name
"libai" (将原来结果覆盖了)
$ del name
(integer) 1
$ get name
(nil)
$ keys * (查看所有 key)
1) name
5 hset 散列操作
hset key field value
$ hset student age 22
(integer) 1
$ hset student score 88
(integer) 1
$ hset student name xiaoming
$ hgetall student
1) "22"
2) "88"
3) "xiaoming"
6 incr 和 hincrby
$ set age 1
$ incr age
(integer) 2
$ incrby age 2
(intger) 4
7 IDEA 操作 Redis
groupId | artifactId | version | 作用 |
---|---|---|---|
redis.clients | jedis | 3.2.0 | 支持 java语言连接 redis |
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.2.0</version>
</dependency>
7.1 编写测试代码
val jedis = new Jedis("bd02",6379)
val str = jedis.get("name")
val it = jedis.set("age",11)
val incrit =jedis.incr()
var age = jedis.get("age")
println(age)
println(str)
文章部分引用 https://www.redis.net.cn