前言

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. elasticsearch 基础语句

    1.  doucument id 的两种生成方式 自动生成document id自动生成的id,长度为20个字符,URL安全,base64编码,GUID,分布式系统并行生成时不可能会发生冲突 POST ...

  2. [转载] linux中文件描述符fd和文件指针flip的理解

    转载自http://www.cnblogs.com/Jezze/archive/2011/12/23/2299861.html 简单归纳:fd只是一个整数,在open时产生.起到一个索引的作用,进程通 ...

  3. 重构手法之Introduce Explaining Variable(引用解释性变量)

    返回总目录 6.5Introduce Explaining Variable(引用解释性变量) 概要 你有一个复杂的表达式. 将该复杂表达式(或其中一部分)的结果放进一个临时变量,以此变量名称来解释表 ...

  4. CLR设计类型之接口

    写在前面的话:             写到这一节的时候,CLR设计类型就已经结束了,因为CLR要求的是有一定基础的人看的,所以我们不是从基础类型以及运算符开始的,文章从一开始就讲的是深入面向对象编程 ...

  5. c语言的作用域、变量与结构体

    一.变量的作用域 根据变量的作用域,可以分为: 1.局部变量: 1> 定义:在函数(代码块)内部定义的变量(包括函数的形参) 2> 作用域:局部变量只有在定义它的函数内部使用,其它函数不能 ...

  6. JavaWeb框架SSH_Struts2_(四)----->表达式语言OGNL

    1. 表达式语言OGNL OGNL简介 OGNL基本语法 常量 操作符 OGNL表达式 OGNL基础 OGNL上下文 OGNL值栈 OGNL的访问 2. 具体内容 2.1 OGNL简介 OGNL(Ob ...

  7. selenium实现自动下载文件

    #coding:utf-8'''说明:导出'''from selenium import webdriverfrom public.highlightElement import highlightf ...

  8. selenium定位tr及td,并获取其文本及属性

    #获取所有的trtrlist=brower.find_elements_by_tag_name("tr")for tr in trlist: #获取tr中的所有td tdlist= ...

  9. Jrebel热部署配置完整教程(IntelliJ IDEA、Jrebel、spring boot、springboot、eclipse、Tomcat)

    标签:IntelliJ IDEA.Jrebel.spring boot.springboot.eclipse.Tomcat1.安装插件并激活插件安装参考:http://blog.csdn.net/u0 ...

  10. 深入理解 Android 消息机制原理

    欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:汪毅雄 导语: 本文讲述的是Android的消息机制原理,从Java到Native代码进行了梳理,并结合其中使用到的Epoll模型予以介 ...