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. [hdu6984]Tree Planting

    构造一个01矩阵,其中格子$(i,j)$​​​​​对应于第$ik+j$​​个​​​的位置(其中$0\le i<\lceil\frac{n}{k}\rceil,0\le j<k$​​​,位置 ...

  2. [atARC058F]Lroha Loves Strings

    贪心,求出前$i$个字符串所能组成的字典序最小的字符串$ans$(特别的,这里的字典序有$ab>abc$),同时保证剩下的长度能通过$l_{i+1},...,l_{n}$拼接 考虑插入一个字符串 ...

  3. 第09章 MySQL子查询

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

  4. 你真的知道Spring注解驱动的前世今生吗?这篇文章让你豁然开朗!

    本篇文章,从Spring1.x到Spring 5.x的迭代中,站在现在的角度去思考Spring注解驱动的发展过程,这将有助于我们更好的理解Spring中的注解设计. Spring Framework ...

  5. 阿里性能专家全方位对比Jmeter和Locust,到底谁更香?

    近些年,随着互联网行业的不断发展,用户规模也有了爆发性的增长.产品的性能成为影响用户体验的重要因素.因此,性能测试越来越受到大型互联网企业的重视. 在做性能测试时,通常都会借助一些压测工具来模拟大量的 ...

  6. bwa比对软件的使用以及其结果文件(sam)格式说明

    一.bwa比对软件的使用 1.对参考基因组构建索引 bwa index -a bwtsw hg19.fa   #  -a 参数:is[默认] or bwtsw,即bwa构建索引的两种算法,两种算法都是 ...

  7. mysql之对象创建

    1 --创建表空间 2 create tablespace tablespace_name 3 innodb and ndb: 4 add datafile 'file_name' 5 innodb ...

  8. CSS3新增特性\HTML标签类型

    RGBA:透明度      作用: 设置透明度(R G B A)   opacity:不透明度     文字也会被设置不透明度   圆角      border-radius:圆角{左上角,右上角.. ...

  9. 【Java 8】Stream.distinct() 列表去重示例

    在这篇文章里,我们将提供Java8 Stream distinct()示例. distinct()返回由该流的不同元素组成的流.distinct()是Stream接口的方法. distinct()使用 ...

  10. Ajax请求($.ajax()为例)中data属性传参数的形式

    首先定义一个form表单: <form id="login" > <input name="user" type="text&quo ...