栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Redis的安装使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Redis的安装使用

一、简介

Redis 是完全开源免费的,遵守 BSD 协议,是一个灵活的高性能 key-value 数据结构存储,可以用来作为数据库、缓存和消息队列。

Redis 比其他 key-value 缓存产品有以下三个特点:

  • Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载到内存使用。
  • Redis 不仅支持简单的 key-value 类型的数据,同时还提供 list,set,zset,hash 等数据结构的存储。
  • Redis 支持主从复制,即 master-slave 模式的数据备份。

Redis 的特点

  • 高性能: Redis 将所有数据集存储在内存中,可以在入门级 Linux 机器中每秒写(SET)11 万次,读(GET)8.1 万次。Redis 支持 Pipelining 命令,可一次发送多条命令来提高吞吐率,减少通信延迟。
  • 持久化:当所有数据都存在于内存中时,可以根据自上次保存以来经过的时间和/或更新次数,使用灵活的策略将更改异步保存在磁盘上。Redis 支持仅附加文件(AOF)持久化模式。
  • 数据结构: Redis 支持各种类型的数据结构,例如字符串、散列、集合、列表、带有范围查询的有序集、位图、超级日志和带有半径查询的地理空间索引。
  • 原子操作:处理不同数据类型的 Redis 操作是原子操作,因此可以安全地 SET 或 INCR 键,添加和删除集合中的元素等。
  • 支持的语言: Redis 支持许多语言,如 C、C++、Erlang、Go、Haskell、Java、Javascript(Node.js)、Lua、Objective-C、Perl、PHP、Python、R、Ruby、Rust、Scala、Smalltalk 等。
  • 主/从复制: Redis 遵循非常简单快速的主/从复制。配置文件中只需要一行来设置它,而 Slave 在 Amazon EC2 实例上完成 10 MM key 集的初始同步只需要 21 秒。
  • 分片: Redis 支持分片。与其他键值存储一样,跨多个 Redis 实例分发数据集非常容易。
  • 可移植: Redis 是用 C 编写的,适用于大多数 POSIX 系统,如 Linux、BSD、Mac OS X、Solaris 等。

Redis 架构
Redis 主要由有两个程序组成:
Redis 客户端 redis-cli
Redis 服务器 redis-server

二、Redis安装部署

配置环境:
centos7
redis-6.0.9

[root@redis1 ~]# mkdir -p /	data/redis_cluster/redis_6379
[root@redis1 ~]# mkdir -p /opt/redis_cluster/redis_6379/{conf,pid,logs}
[root@redis1 ~]# mkdir /apps
[root@redis1 ~]# cd /apps
[root@redis1 apps]# wget http://download.redis.io/releases/redis-6.0.9.tar.gz
[root@redis1 apps]# tar xf redis-6.0.9.tar.gz -C /opt/redis_cluster/
[root@redis1 apps]# ln -s /opt/redis_cluster/redis-6.0.9/ /opt/redis_cluster/redis
[root@redis1 apps]# cd /opt/redis_cluster/redis
[root@redis1 redis]# make&&make install
[root@redis1 redis]# vim /opt/redis_cluster/redis_6379/conf/redis_6379.conf
###以守护进程模式启动
daemonize yes
###绑定的主机地址
bind 10.0.0.31
###监控端口
port 6379
###pid文件和log文件的保存地址
pidfile /opt/redis_cluster/redis_6379/pid/redis_6379.pid
logfile /opt/redis_cluster/redis_6379/logs/redis_6379.log
###设置数据库的数量,默认数据库为0
databases 16
###制定本地持久化文件的文件名,默认是dump.rdb
dbfilename redis_6379.rdb
###本地数据库的目录
dir /data/redis_cluster/redis_6379
#启动redis_server
[root@redis1 redis]# redis-server /opt/redis_cluster/redis_6379/conf/redis_6379.conf
[root@redis1 redis]# ss -tnl
State       Recv-Q Send-Q                                       Local Address:Port                                                      Peer Address:Port              
LISTEN      0      100                                              127.0.0.1:25                                                                   *:*                  
LISTEN      0      128                                              10.0.0.31:6379                                                                 *:*                  
LISTEN      0      128                                                      *:22                                                                   *:*                  
LISTEN      0      100                                                  [::1]:25                                                                [::]:*                  
LISTEN      0      128                                                   [::]:22                                                                [::]:* 
#启动redis_cli
[root@redis1 redis]# redis-cli -h 10.0.0.31
10.0.0.31:6379> 
#关闭redis-server
10.0.0.31:6379> shutdown
not connected>

安装redis出错可以参考:https://blog.csdn.net/weixin_43719988/article/details/120698090

三、redis的基本使用 3.1 增删改查
#添加
10.0.0.31:6379> set k1 v1
OK

#查询
10.0.0.31:6379> get k1
"v1"

#修改
10.0.0.31:6379> set k1 v2
OK
10.0.0.31:6379> get k1
"v2"

#删除
10.0.0.31:6379> del k1
(integer) 1
10.0.0.31:6379> get k1
(nil)

#判断存不存在
10.0.0.31:6379> EXISTS k1
(integer) 1

#查看类型
10.0.0.31:6379> TYPE k1
string

#多个key进行操作
10.0.0.31:6379> MSET k1 v1 k2 v2 k3 v3
OK
10.0.0.31:6379> MGET k1 k2 k3
1) "v1"
2) "v2"
3) "v3"
3.2 计时器
#Incr 命令将 key 中储存的数字值增一。
#如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。
10.0.0.31:6379> set k1 1
OK
10.0.0.31:6379> INCR k1
(integer) 2
10.0.0.31:6379> INCR k1
(integer) 3
10.0.0.31:6379> INCR k1
(integer) 4
10.0.0.31:6379> get k1
"4"
#如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCRBY 命令。
10.0.0.31:6379> incrby k1 10
(integer) 14
10.0.0.31:6379> get k1
"14"

3.3 过期时间

-1 永不过期
-2 没有这个key

#设置过期时间
10.0.0.31:6379> EXPIRE k1 10
(integer) 0
10.0.0.31:6379> TTL k2
(integer) -2

#取消过期时间
10.0.0.31:6379> PERSIST k2
(integer) 0
3.4 列表
#添加列表元素
10.0.0.31:6379> RPUSH list1 1
(integer) 1
10.0.0.31:6379> RPUSH list1 A
(integer) 2

#查看列表长度
10.0.0.31:6379> LLEN list1
(integer) 2
#查看列表元素
10.0.0.31:6379> LRANGE list1 0 -1
1) "1"
2) "A"

#删除列表元素
10.0.0.31:6379> LRANGE list1 0 -1
1) "1"
2) "A"
3) "3"
4) "4"
5) "5"
6) "6"
#从右边开始删除一个元素
10.0.0.31:6379> RPOP list1
"6"
#从左边开始删除一个元素
10.0.0.31:6379> LPOP list1
"1"
10.0.0.31:6379> LRANGE list1 0 -1
1) "A"
2) "3"
3) "4"
4) "5"

3.5 哈希
#添加
10.0.0.31:6379> HMSET user:1000 name zhangya age 28 job it
OK

#查询
10.0.0.31:6379> HMGET user:1000 name age job
1) "zhangya"
2) "28"
3) "it"
10.0.0.31:6379> HGETALL user:1000
1) "name"
2) "zhangya"
3) "age"
4) "28"
5) "job"
6) "it"

3.6 集合(和list不同,set集合不允许出现重复值)
#添加
10.0.0.31:6379> SADD set1 1 2 3 4 5 
(integer) 5
10.0.0.31:6379> SADD set2 3 4 2 10
(integer) 4

#查询
10.0.0.31:6379> SMEMBERS set1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
10.0.0.31:6379> SMEMBERS set2
1) "2"
2) "3"
3) "4"
4) "10"

#SDIFF计算集合的差异成员
10.0.0.31:6379> SDIFF set1 set2
1) "1"
2) "5"

#SINTER计算集合的交集
10.0.0.31:6379> SINTER set1 set2
1) "2"
2) "3"
3) "4"

#SUNIOn计算集合的合并集
10.0.0.31:6379> SUNIOn set1 set2
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "10"

欢迎大家提出问题,一起交流

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/315167.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号