前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux部署Redis(单机版)

Linux部署Redis(单机版)

作者头像
每天学Java
发布2020-06-01 17:32:05
2.5K0
发布2020-06-01 17:32:05
举报
文章被收录于专栏:每天学Java每天学Java

当数据库数据量过大的时候,大量的IO操作会成为网站性能的瓶颈,而Redis可以大量减少与数据库的交互,提高网站性能。

这一篇文章我们首先来看一下在Linux上面如何安装Redis(单机版),以及Redis的一些常用命令。注:新版的小程序已经审核通过,现在已上线。每天学Java小程序每天都会更新面试题库,在文章的末尾,有今天更新题库列表和小程序图片链接。感兴趣赶快去看看吧。

01

Redis简介

Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。

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

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

Redis的优势:

性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

02

安装Redis

在Linux服务器部署Redis,我们首先是下载Redis的安装包。

我们进入Redis的官网(https://redis.io/download)会看到下面这个界面:

其中Stable是稳定版,我们通常会下载这个版本的压缩包,上面描述中我们可以看到当前的稳定版是4.0发布于2017年7月。

Unstable就是不稳定版,上面对不稳定版本的描述是:仅适用于核心黑客。仅在需要测试最新功能或性能改进时使用。这将是几个月内Redis的下一个版本。

Beta5.0版本用于引入具有使用者组的新流数据类型,阻止弹出操作的排序集,RDB中的LFU / LRU信息,redis-cli中的集群管理器,活动碎片整理V2,HyperLogLogs改进以及许多其他较小的改进

Docker:可以从Docker Hub获取Redis的Docker镜像。有多个版本可供使用,通常在新版本发布后的短时间内更新。

那么我们下载稳定版本就可以了:

你可以点击下载,将压缩包下到本地,然后通过工具(FTP,Xshell)上传到我们的服务器当中。

你也可以这样来下载(推荐):

我们检查页面元素,找到下载的链接,复制下来。在Linux使用wget 命令直接下载。

代码语言:javascript
复制
wget http://download.redis.io/releases/redis-4.0.11.tar.gz

下载后我们使用tar -zxvf 命令解压压缩包。

然后进入到解压后文件夹中

使用make命令

代码语言:javascript
复制
$ wget http://download.redis.io/releases/redis-4.0.11.tar.gz
$ tar xzf redis-4.0.11.tar.gz
$ cd redis-4.0.11
$ make

make完后 redis-2.8.17目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli,两个程序位于安装目录 src 目录下,下面是启动redis。

代码语言:javascript
复制
$ cd src
$ ./redis-server
------------------------
$ cd src
$ ./redis-server ../redis.conf

注意这种方式启动redis 使用的是默认配置。也可以通过第二种启动参数告诉redis使用指定配置文件启动。现在我们来测试一下。我们可以理解为redis-cli命令进入到一个客户端程序,其中foo是key,bar是值。

代码语言:javascript
复制
$ cd src
$ ./redis-cli
redis> set foo bar
OK
redis> get foo
"bar"

到这里我们已经安装好redis,并且启动成功。下面我们来看一下,redis一些常用命令。

03

Redis常用命令

关于key

keys * 获取所有的key

代码语言:javascript
复制
[root@VM_117_227_centos src]# ./redis-cli 
127.0.0.1:6379> key *
(error) ERR unknown command `key`, with args beginning with: `*`, 
127.0.0.1:6379> KEYS *
1) "studyJava"
127.0.0.1:6379> 

select 0 选择第一个库

move myString 1 将当前的数据库key移动到某个数据库,目标库有,则不能移动

flush db 清除指定库

randomkey 随机key

type key 类型

set key1 value1 设置key

get key1 获取key

mset key1 value1 key2 value2 key3 value3

mget key1 key2 key3

del key1 删除key

exists key 判断是否存在key

expire key 10 10过期

pexpire key 1000 毫秒

persist key 删除过期时间

string

set name cxx

get name

getrange name 0 -1 字符串分段

getset name new_cxx 设置值,返回旧值

mset key1 key2 批量设置

mget key1 key2 批量获取

setnx key value 不存在就插入(not exists)

setex key time value 过期时间(expire)

setrange key index value 从index开始替换value

incr age 递增

incrby age 10 递增

decr age 递减

decrby age 10 递减

incrbyfloat 增减浮点数

append 追加

strlen 长度

getbit/setbit/bitcount/bitop 位操作

hash

hset myhash name cxx

hget myhash name

hmset myhash name cxx age 25 note "i am notes"

hmget myhash name age note

hgetall myhash 获取所有的

hexists myhash name 是否存在

hsetnx myhash score 100 设置不存在的

hincrby myhash id 1 递增

hdel myhash name 删除

hkeys myhash 只取key

hvals myhash 只取value

hlen myhash 长度

list

lpush mylist a b c 左插入

rpush mylist x y z 右插入

lrange mylist 0 -1 数据集合

lpop mylist 弹出元素

rpop mylist 弹出元素

llen mylist 长度

lrem mylist count value 删除

lindex mylist 2 指定索引的值

lset mylist 2 n 索引设值

ltrim mylist 0 4 删除key

linsert mylist before a 插入

linsert mylist after a 插入

rpoplpush list list2 转移列表的数据

set

sadd myset redis

smembers myset 数据集合

srem myset set1 删除

sismember myset set1 判断元素是否在集合中

scard key_name 个数

sdiff | sinter | sunion 操作:集合间运算:差集 | 交集 | 并集

srandmember 随机获取集合中的元素

spop 从集合中弹出一个元素

zset

zadd zset 1 one

zadd zset 2 two

zadd zset 3 three

zincrby zset 1 one 增长分数

zscore zset two 获取分数

zrange zset 0 -1 withscores 范围值

zrangebyscore zset 10 25 withscores 指定范围的值

zrangebyscore zset 10 25 withscores limit 1 2 分页

Zrevrangebyscore zset 10 25 withscores 指定范围的值

zcard zset 元素数量

Zcount zset 获得指定分数范围内的元素个数

Zrem zset one two 删除一个或多个元素

Zremrangebyrank zset 0 1 按照排名范围删除元素

Zremrangebyscore zset 0 1 按照分数范围删除元素

Zrank zset 0 -1 分数最小的元素排名为0

Zrevrank zset 0 -1 分数最大的元素排名为0


跟小伙伴们分享一下这一周的推送安排,大家可以重点关注自己喜欢的文章:

九月15号周六:Linux部署Redis(单机版)

九月16号周日:Spring Boot集成Redis

那么今天小程序更新的题库是什么呢?

今天小程序更新的题目是:

1.Redis 常见的性能问题都有哪些?如何解决?

2.网站如果为了保证高可用,会采取什么样的形式解决单点问题?

3.redis数据淘汰策略

4.什么是缓存雪崩

5.什么是缓存穿透

6.redis如何实现过期策略

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-09-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 每天学Java 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档