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. [loj3076]公园

    为了方便,对题意做以下处理: 1.称"西部主题"和"科幻主题"分别为黑色和白色 2.删去题中"保证没有两条不同的道路连接同一对景点"的条件 ...

  2. [bzoj1677]求和

    dp,用f[i]表示i划分的方案,直接枚举最后一个数是错误的,因为会导致c重复计数,然后正解十分神奇--当i为奇数,那么分解中一定有1,因此f[i]=f[i-1]当i为偶数若有1,同样转移到f[i-1 ...

  3. 面向对象中static的理解(2) (单例模式)

    作用:只产生一个对象 1 class Yoshi { 2 public: 3 //外界只能通过这种方式调用这一个对象,返回必须是引用 4 static Yoshi& getInstance() ...

  4. idea插件 Background Image Plus 随机更换背景图片

    首先在市场搜索: Background Image Plus 设置图片: 在view中,有set 图片,有random图片,有clean图片的 设置就是用set,随便设置个路径. 重点来了,随机更换背 ...

  5. Codeforces 407E - k-d-sequence(单调栈+扫描线+线段树)

    Codeforces 题面传送门 & 洛谷题面传送门 深感自己线段树学得不扎实-- 首先特判掉 \(d=0\) 的情况,显然这种情况下满足条件的区间 \([l,r]\) 中的数必须相同,双针扫 ...

  6. 【GS文献】测序时代植物复杂性状育种之基因组选择

    综述:Genomic Selection in the Era of Next Generation Sequencing for Complex Traits in Plant Breeding 要 ...

  7. [R] cbind和filter函数的坑

    最近我用cbind函数整合数据后,再用filter过滤数据,碰到了一个大坑. 以两组独立样本t检验筛选差异蛋白为例进行说明吧. pro2 <- df2[1:6] Pvalue<-c(rep ...

  8. 【Perl示例】整合多个文件

    这个需求是在生信分析中几乎天天用到,各种语言都能实现,也都各有特点.这次以perl为例. 已知 文件CT-VS-CON.All.xls为全部蛋白表达矩阵及其差异分析结果. 文件Homo_sapiens ...

  9. python 新闻管理系统——启示

    mysql取整函数: mysql函数ceil.floor.round mysql 取整 1.ceil() / ceiling() 向上取整 ex: ceil(1.2) = 2 2.floor() 向下 ...

  10. 毕业设计之dns搭建:

    [apps@dns_sever ~]$ sudo yum install -y bind [apps@dns_sever ~]$ sudo vim /etc/named.conf // // name ...