Redis简介

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

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

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

下载安装Redis5.0.X

以Ubuntu20.4为例

运行安装命令

sudo apt-get install redis-server

Redis配置文件

以Ubuntu20.4为例

sudo vim /etc/redis/redis.conf

Redis操作相关命令

部分命令可直接通过键盘Tab键补全

# 卸载命令
sudo apt-get purge --auto-remove redis-server # 关闭命令
sudo service redis-server stop # 开启命令
sudo service redis-server start # 重启命令
sudo service redis-server restart # Redis命令行客户端
redis-cli # Redis服务器
redis-server # Redis性能测试工具
redis-benchmark # AOF文件修复工具
redis-check-aof # RDB文件检查工具
redis-check-rdb

Redis五种数据类型

类型 描述
string 字符串类型
hash 散列类型
list 列表类型
set 集合类型
zset 有序集合类型

Redis通用命令

  1. 获取符合规则的键名列表
keys [pattern] # pattern支持glob风格通配符格式
符号 含义
? 匹配一个字符
* 匹配任意个字符
[] 匹配范围内字符,如a[b-d]可以匹配“ab”、“ac”、“ad”
\ 匹配需要转义字符
  1. 判断键是否存在
exists key # 如果键存在则返回整型1,反之返回0
  1. 删除键
del key [key ...] # 支持批量删除,返回值为删除键的个数
  1. 获取键值的数据类型
type key
  1. 获取键的总数
dbsize
  1. 设置键过期时间
expire key seconds # key在seconds秒后过期
  1. 查询当前键的剩余时间
ttl key # 查询key在多少秒后过期
# 如果返回值为-1,则代表key存在且没有设置过期时间
# 如果返回值为-2,则代表key已不存在
  1. 删除键的过期时间
persist key
  1. 清空所有数据库数据
flushall
  1. 清空当前数据库数据
flushdb
  1. 切换到指定数据库
select index # 默认使用0号数据库

Redis数据类型入门

String(字符串类型)常用命令

string可以存储任何形式的字符串,包括二进制数据。

  1. 获取键对应的值
get key # 当键不存在时会返回空(nil)
  1. 设置键值对
set key value

setnx key value # 键不存在时才设置

set key value xx # 键存在时才设置(属更新操作)
  1. 递增/递减数字
incr key # 使当前键自增1,并返回自增后的值

decr key # 使当前键自减1,并返回自减后的值

incrby key num # 使当前键自增num

decrby key num # 使当前键自减num
  1. 获取字符串长度
strlen key # 返回键的长度,不存在则返回0
  1. 向尾部追加值
append key value # 如果键不存在则设置新的键值,返回值为总长度
  1. 批量获取/设置多个键值
mget key [key ...] # 获取

mset key1 value1 key2 value2 ... # 新增
  1. 获取字符串指定下标的值
getrange key start end
  1. 设置字符串指定下标的值
setrange key index value

Hash(散列类型)常用命令

hash 是一个 string 类型的 field(字段)和 value(值)的映射表,适合用于存储对象。

  1. 获取散列属性对应的值
# 获取单个属性对应的值
hget key field # 获取多个属性对应的值
hmget key field [field ...] # 获取散列所有属性与值
hgetall key # 获取散列所以属性对应的值
hvals key # 获取散列键对应的所有属性
hkeys key
  1. 设置散列
# 设置单个散列
hset key field value # 设置散列属性,如果属性已存在,则设置失败
hsetnx key field value # 设置散列多个属性值
hmset key field1 value1 field2 value2 ...
  1. 删除散列属性
hdel key field
  1. 判断散列的键是否存在某一属性
hexists key value
  1. 获取散列属性数量
hlen key

List(列表类型)常用命令

  1. 设置列表
# 从列表右侧插入值
rpush key value1 value2 ... # 从列表左侧插入值
lpush key value1 value2 ... # 在列表指定值的前/后插入新值
linsert key before|after value newValue
  1. 删除列表指定值
# 从列表左侧删除一个元素
lpop key # 从列表右侧删除一个元素
rpop key # 根据count值删除所有相同值的元素
# (1)count>0,从左到右,删除最多count个value相等的项
# (2)count<0,从右到左,删除最多Math.abs(count)个value相等的项
# (3)count=0,删除所有value相等的项
lrem key count value # 根据索引范围修改列表
ltrim key start end
  1. 获取列表值
# 获取列表指定索引范围内所有元素
# start与end为闭区间
lrange key start end # 获取列表指定索引的元素
lindex key index # 获取列表长度
llen key
  1. 修改列表中的值
# 设置列表指定索引对应的值为newValue
lset key index newValue

Set(集合类型)常用命令

  1. 设置集合
# 向集合键中添加元素,如果元素存在,则添加失败
sadd key element
  1. 删除集合中指定元素
# 删除集合中指定的元素
srem key element # 从集合中随机删除count个元素
# 移除后会返回移除的元素
spop key [count]
  1. 获取集合指定值
# 获取集合的数量
scard key # 判断元素是否存在
sismember key element # 从集合中随机获取count个元素
srandmember key [count]
  1. 集合间的交差并操作
# 获取集合间的差集
sdiff key1 key2 ... # 获取集合间的交集
sinter key1 key2 ... # 获取集合间的并集
sunion key1 key2 ...

Zset(有序集合类型)常用命令

  1. 设置有序集合
zadd key score element
  1. 删除有序集合中指定元素
zrem key element

# 删除指定排名内的升序元素
zremrangebyrank key start end # 删除指定分数内的升序元素
zremrangebyscore key minScore maxScore
  1. 获取有序集合指定值
# 获取元素的分数
zscore key element # 获取元素总个数
zcard key # 按照升序排序获取指定索引范围内的元素
# WITHSCORES属性控制是否输出分数值
zrange key start end [WITHSCORES] # 按照升序排序获取指定分数范围内的元素
zrangebyscore key minScore maxScore [WITHSCORES] # 获取有序集合内在指定分数范围内的个数
zcount key minScore maxScore

Redis入门及常用命令学习的更多相关文章

  1. Git版本控制软件结合GitHub从入门到精通常用命令学习手册(转)

    简要参考:http://www.tuicool.com/articles/mEvaq2 http://gitref.org/zh/index.html GIT 学习手册简介 本站为 Git 学习参考手 ...

  2. Docker 入门指南——常用命令

    前面已经介绍了 Docker 的安装方式,本文总结一下使用 Docker 的基本概念和常用命令. 基本概念 镜像 Image 镜像是一些打包好的已有的环境,可以被用来启动和创建容器 容器 Contai ...

  3. mongodb新手入门,mongodb命令学习

    下面来总结一下mongodb新手入门的常用命令吧.要是您是mongodb新手,可以看下. 1,show dbs 查询mongodb里面的数据库列表 如果想查看当前连接在哪个数据库下面,可以直接输入db ...

  4. Linux的几个概念,常用命令学习

    Linux的几个概念,常用命令学习---------------------------------设备名装载点// 通过装载点访问设备-------------------------------- ...

  5. redis 介绍和常用命令

    redis 介绍和常用命令 redis简介 Redis 是一款开源的,基于 BSD 许可的,高级键值 (key-value) 缓存 (cache) 和存储 (store) 系统.由于 Redis 的键 ...

  6. mondb 常用命令学习记录

    mondb 常用命令学习记录 一.MongoDB 下载安装 MongoDB官网 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB 预编译二进制 ...

  7. Redis数据类型和常用命令

    Redis相较于其它的数据库虽然简单,但是要熟记所有命令的用法也并非易事.一个简单的技巧是通过要操作的数据类型来将这些命令进行结构化. 数据类型和对应命令 所有存储于redis中的数据都对应于一个键值 ...

  8. mongodb常用命令学习笔记

    mongodb常用命令学习笔记 创建数据库 use DATABASE_NAME eg: use users; 如果数据库不存在,则创建数据库,否则切换到指定数据库.要显示刚刚创建的数据库,需要向数据库 ...

  9. Docker的入门及常用命令

    Docker入门及常用命令 1. 各个容器之间是相互隔离状态: 这样减少了我们软件之间的影响. 2. docker是os层虚拟化架构的一种产品体现, os层虚拟化架构出来的操作系统需要和宿主机操作系统 ...

随机推荐

  1. 第09章 MySQL子查询

    第09章 MySQL子查询 子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从MySQL 4.1开始引入. SQL 中子查询的使用大大增强了 SELECT 查询的能力,因为很多时候查询需要 ...

  2. [源码解析] PyTorch 分布式(11) ----- DistributedDataParallel 之 构建Reducer

    [源码解析] PyTorch 分布式(11) ----- DistributedDataParallel 之 构建Reducer 目录 [源码解析] PyTorch 分布式(11) ----- Dis ...

  3. 7.4 k8s结合ceph rbd、cephfs实现数据的持久化和共享

    1.在ceph集群中创建rbd存储池.镜像及普通用户 1.1.存储池接镜像配置 创建存储池 root@u20-deploy:~# ceph osd pool create rbd-test-pool1 ...

  4. 超图GIS入门iserver搭建,前端调用iserver加载三维场景demo

    目录 前言 一.GIS介绍,为什么选择它? 二.环境安装 三.调用三维GIS场景 设置地图风格 添加地图iServer服务 前言 前段时间因为对3D制图感兴趣,学习了一下国内制作GIS的公司产品技术, ...

  5. 力扣 - 剑指 Offer 46. 把数字翻译成字符串

    题目 剑指 Offer 46. 把数字翻译成字符串 思路1(递归,自顶向下) 这题和青蛙跳台阶很类似,青蛙跳台阶说的是青蛙每次可以跳一层或者两层,跳到第 n 层有多少种解法,而这题说的是讲数字翻译成字 ...

  6. ARC 119 补题记录

    这把感觉质量很高. \(E\) \(E\)比较简单所以先写个\(E\),考虑就一个置换操作来说改变的只有两端的值. 考虑\(|a_i - a_{i - 1}|\)变成区间,则我们考虑分类讨论,发现只有 ...

  7. Codeforces Round #681 (Div. 1) Solution

    A. Extreme Subtraction 把这个数组差分一下,发现操作一的作用是把 \(d_1\) 的大小分给 \(d_i\),而操作二的作用是把 \(d_i\) 减去任意值,目标是把 \(d\) ...

  8. 在R语言中使用Stringr进行字符串操作

    今天来学习下R中字符串处理操作,主要是stringr包中的字符串处理函数的用法. 先导入stringr包,library(stringr),require(stringr),或者stringr::函数 ...

  9. 码上来战!探索“智”感生活,HMS Core线上Codelabs挑战赛第4期开始!

    HMS Core线上Codelabs挑战赛第4期正式开始!我们向所有实践力超强.创新力满满的开发者发出邀请,用你的超级"码"力,解锁更多应用价值! 生活里,我们被手机"秒 ...

  10. 在Kubernetes上安装MySQL-PXC集群

    官方部署文档地址:https://www.percona.com/doc/kubernetes-operator-for-pxc/kubernetes.html 一.部署方式 示例在k8s集群(至少3 ...