前言

redis安装完毕后开始使用redis,先熟悉命令行操作。

redis数据的类型

  • 键:redis的所有的键都是string类型;

  • 值:五种类型

  1. string:字符串类型;一个string最大可以储存512MB的数据,其可以储存任何对象;

  2. hash:散列,用来存储对象,key代表对象,field代表属性

  3. set:集合类型,无序的集合,元素为string类型,不可重复;

  4. list:列表类型,一个链表,其元素类型属于string,按照插入的顺序排序

  5. zset:有序集合类型,元素为string,不可重复,每个元素可以指定一个权重,按权重从小到大排列

常用命令

服务相关命令

ping : 返回pong,用来测试连接是否成功;
echo xxx: 在命令行打印一些内容;
quit/exit:退出客户端;
info:返回redis相关的信息;

键命令

select index  # 切换数据库,0~15代表16个数据库
keys * # 查看当前所有的keys,这个在生产环境下不要使用
keys pattern # 查找键,支持正则,常用的有 *(匹配0个或多个) ?(匹配一个) [a-z] [abcd]
exists key # 查看这个key是否存在
type key # 查看key的类型
ttl key # 查看有效时间,指的是还剩余的有效时间,如果过期,有效时间置为-2;如果设置为永久有效,有效时间为-1. dbsize # 查看数据库中所有的键值对的数目
randomkey # 随机返回数据库里的一个key
rename key1 key2 # 重命名key flushdb # 清空当前选择的数据库
flushall # 清库该redis实例所有的数据库 expire key seconds # 为键值对设置过期时间
client list # 查看当前所有的客户端 # 同步磁盘
save # 会立即阻塞所有的客户端请求,开始同步rdb文件
gbsave # 异步保存rdb文件

操作string类型

# 设置键值对,永久保存
set key value
# 设置有过期时间的键值对,过期自动删除
setex key 时间 value
# 设置多个键值对
mset key value key value ...
# 设置多个不存在的键值对,存在则失败
msetnx key value key value
# 为不存在的键设置值
setnx key value # 如果键存在,设置失败
# 字符串中字符替换 setrange key offset value

# 获取值
get key
# 获取子字符串
getrange key start end
strlen key # 获取值得长度

# 对于value是数值的情况,可以运算;如果不是数字会报错;
incr key # 对value加1
incrby key num # 对value加一个整数,可以是负数,但不可以是小数
incrbyfloat key num # 对value减一个浮点数,可以是负数
decr key # 对value减少1
decrby key num # 对value减一个整数,可以是负数,但不可以是小数 append key value # 对原来的key的值进行字符串拼接

# 删除一个或多个键值对
del key key

操作hash类型

# 设置单个hash对象
hset key field value
# 设置多个属性
hmset key field value field value...
# 为不存在的散列设置值,如果其field或key已经存在,则没有操作
hsetnx key field value

# 删除属性和值
hdel key field field

# 判断属性是否存在
hexists key field
# 获取一个属性
hget key field
# 获取多个属性
hmget key field field...
# 获取所有属性和值
hgetall key
# 获取所有的属性
hkeys key
# 获取所有的值
hvals key
# 获取对象属性的个数
hlen key
# 返回值得字符串的长度
hstrlen key field

# 对属性增加一个整数num,如果field不存在,则增加一个field;如果value不是数字整数,替换成数字整数
hincrby key field num
# 对属性增加一个浮点数num,如果不存在,增加一个field;如果value不是数字整数,报错;
hincrbyfloat key field num

操作list类型

# 创建一个list并在头部插入数据
lpush key value value..
# 在尾部插入数据
rpush key value value
# 在一个元素的后面或前面插入新的元素,如果有多个相同的元素,会按从头到尾找到的第一个元素
linsert key before|after 已有的元素 新的元素
# 设置指定的索引值的元素值,可以是负数,-1表示最后一个
lset key index value # lset list1 3 kkk

# 从头部弹出元素
lpop key
# 从尾部弹出元素
rpop key
# 返回指定范围内的元素,基于下标0,可以是负数
lrange key start stop # lrange list1 -3 -1
# 如果指定的下标超出了范围,会返回实际的数据
# 返回list的长度
llen key
# 返回对应索引的元素
lindex key index
# 从非空列表中弹出最左元素,在timeout时间内阻塞等待
blpop key key ... timeout
# 从非空列表中弹出最右元素,在timeout时间内阻塞等待
brpop key key ... timeout
# 从key1中最右端弹出元素加入到key2的最左端,返回该元素
rpoplpush key1 key2
# 从key1中最右端弹出元素加入到key2的最左端,并在timeout时间内阻塞等待
brpoplpush key1 key2 timeout

删除

# 删除元素
lrem key count value
# 删除count个value值,如果count>0,从左边开始删;
# 小于0从右边开始删;
# 等于0删除所有的value;
# count的绝对值大于列表中value的个数时,删除所有的value

修改

# 剪切原来的列表
ltrim key start stop

操作集合set

# 创建并添加一个或多个元素到集合
sadd key value ...

# 返回集合里的所有元素
smembers key
# 返回集合元素的个数
scard key
# 多集合的交际
sinter key1 key2
# 将集合的交集存储在dest中
sinterstore dest key1 key2...
# 多集合的并集
sunion key1 key2
# 将集合的并集存储在dest中
sunionstore dest key1 key2...
# 多集合的差集,以第一个key作为基准
sdiff key ...
# 将存在第一个集合key1,但不在其他集合中的元素存储在dest中
sdiffstore dest key1 key2 ...
# 判断元素是否在集合中,如果存在返回1,不存在返回0
sismember key value
# 从集合里随机返回一个或多个元素,当count是正数,返回count个不重复的元素,如果不够,返回实际的所有元素;当count为负数,返回count个可重复的元素;为0返回none
srandmember key count

# 删除元素一个或多个元素
srem key value
# 随机移除集合里的一个或多个元素,返回该元素
spop key count # count可以不写,默认移除一个;不能为负数,否则报错;大于元素个数,移除所有元素

# 将一个集合里的元素移除并添加到另一个元素里,成功返回1,失败0
smove key1 key2 member

有序集合zset

# 创建并加入元素,会按照score的值进行排序,如果元素的分数值相同,将会使用字典排序,按照a到z
zadd key score value score value ...

# 获取集合中的所有的值,超过范围取实际的值
zrange key start stop
# 返回在分数范围内的元素
zrangebyscore key min max
# 返回元素的个数
zcard key
# 返回score在范围内的元素
zcount key min max
# 返回成员的score的值
zscore key value
# 返回成员在有序集合中的排名,从0开始算起
zrank key member

# 修改元素的值的分数
zincrby key 整数 value

# 删除指定元素
zrem key member member
# 删除分数范围的元素
zremrangebyscore key min max

总结

  • redis使用最多的类型是string和list,string作为键值对存储缓存数据,list作为队列使用。

参考

redis基础(一)的更多相关文章

  1. windows下使用redis,Redis入门使用,Redis基础命令

    windows下使用redis,Redis入门使用,Redis基础命令 >>>>>>>>>>>>>>>> ...

  2. [.net 面向对象程序设计深入](14)Redis——基础

    [.net 面向对象程序设计深入](14)Redis——基础 很长一段时间没更新博客了,坚持做一件事,真不是件容易的事,后面我会继续尽可能的花时间更新完这个系列文章. 因这个系列的文章涉及的范围太大了 ...

  3. linux redis基础应用 主从服务器配置

    Redis基础应用 redis是一个开源的可基于内存可持久化的日志型,key-value数据库redis的存储分为内存存储,磁盘存储和log文件三部分配置文件中有三个参数对其进行配置 优势:和memc ...

  4. [.net 面向对象程序设计深入](36)Redis——基础

    [.net 面向对象程序设计深入](36)Redis——基础 很长一段时间没更新博客了,坚持做一件事,真不是件容易的事,后面我会继续尽可能的花时间更新完这个系列文章. 因这个系列的文章涉及的范围太大了 ...

  5. mysql主从复制、redis基础、持久化和主从复制

    一.mysql(mariadb)基础 1.基础命令(centos7操作系统下) 1.启动mysql systemctl start mariadb 2.linux客户端连接自己 mysql -uroo ...

  6. Redis基础用法、高级特性与性能调优以及缓存穿透等分析

     一.Redis介绍 Redis是一个开源的,基于内存的结构化数据存储媒介,可以作为数据库.缓存服务或消息服务使用.Redis支持多种数据结构,包括字符串.哈希表.链表.集合.有序集合.位图.Hype ...

  7. Redis基础知识补充及持久化、备份介绍(二)--技术流ken

    Redis知识补充 在上一篇博客<Redis基础认识及常用命令使用(一)--技术流ken>中已经介绍了redis的一些基础知识,以及常用命令的使用,本篇博客将补充一些基础知识以及redis ...

  8. Spring-Boot之Redis基础

    Spring-Boot之Redis基础 准备 Redis下载地址:github.com/MSOpenTech/redis/releases Redis数据库的默认端口号是 6379 开启Redis服务 ...

  9. mongodb,Mysql,redis基础教程

    数据库基础 1:mongodb基础教程 1:pymongo基础教程  2:Mysql基础教程 3:redis基础教程

  10. Redis基础知识点面试手册

    Redis基础知识点面试手册 基础 概述 数据类型 STRING LIST SET HASH ZSET(SORTEDSET) 数据结构 字典 跳跃表 使用场景 会话缓存 缓存 计数器 查找表 消息队列 ...

随机推荐

  1. J-Link驱动下载和Hex程序下载

    J-LINK驱动下载 1.首先拥有硬件J-Link硬件. 2.安装J-Link驱动程序SEGGER 下载地址如下 https://www.segger.com/downloads/jlink/JLin ...

  2. SQL命令语句小技巧

    1.[ ]的使用 当我们所要查的表是系统关键字或者表名中含有空格时,需要用[]括起来,例如新建了两个表,分别为user,user info,那么select * from user和select * ...

  3. MVC 页面静态化

    最近工作需要,实现页面静态化,以前在ASP时代,都是FSO自己手动生成的. 新时代,MVC了,当然也要新技术,网上一搜,找到一种解决方案,是基于MVC3的,实现原理是通过mvc提供的过滤器扩展点实现页 ...

  4. C#写的较完美验证码通用类

    using System; using System.Collections; using System.ComponentModel; using System.Data; using System ...

  5. C#删除区域实现透明

    最近在搞一个图形图像的项目.不知道经理为什么选择了C#语言,但还是要做,呵呵. 在期间出现一个比较难解决的问题如下: 删除当前图层的指定区域用来显示下面图层在这个区域的图像,相当于PS蒙版层的效果. ...

  6. jmockit学习

    下图为jmockit 类图.在我们编写代码时几乎都会用到Expectations(期望)和Verifications(校验),二者均继承自Invacations. 常会用到的注解有:@Mocked @ ...

  7. install plugin group_replication ERROR 1126 (HY000)

    在给MySQL安装插件的时候,你可能会遇到如题所示的报错. 更详细的错误输出如下: mysql> INSTALL PLUGIN group_replication SONAME 'group_r ...

  8. SQL 之存储过程

    存储过程 是用来执行管理任务或应用复杂的业务规则, 存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数.输出参数.返回单个或多个结果集以及返回值. 存储过程的优点 存储过程已在服务器注册 执 ...

  9. asp.net core 2.0集成signalr

    在博客园也很多年了,一直未曾分享过什么东西,也没有写过博客,但自己也是汲取着博客园的知识成长的: 这两天想着不能这么无私,最近.NET CORE貌似挺流行的,闲来无事也自己搞了个asp.net cor ...

  10. 08-图8 How Long Does It Take

    原题: Given the relations of all the activities of a project, you are supposed to find the earliest co ...