文章目录

  • Redis 应用
    • 数据类型
      • string
      • 基础操作
      • hash 哈希类型 适合缓存
      • list 列表
      • set 无序集合
      • 有序集合 zset

Redis 应用


  • 数据类型
  • python操作redis
  • redis主从
  • redis持久化

数据类型


  • string 最基本的类型
  • hash 缓存常用
  • list 列表
  • set 无序集合
  • zset 有序集合

string

set key value  #往redis数据库中插入数据
get key #根据key获取数据
del key  #删除指定的key
type key #查看key的类型
incr key #key必须是数字  incr 累加1
incrby key 指定的数字 #增加指定的整数值
decrby key 指定的数字 #递减指定的整数值
decr key #同上  累减1
incrbyfloat key #增加指定的浮点值
ttl key #查看key的过期时间 -1 表示永不过期
expire key 秒数 #设置key的过期时间 strlen key
setex key 秒数 value #设置key的时候直接设置过期时间127.0.0.1:6379> set username hello
OK
127.0.0.1:6379> get username
"hello"
127.0.0.1:6379> append username world  #追加字符串到指定的key对应的value
(integer) 10
127.0.0.1:6379> get username
"helloworld"----------------------以上是操作单个key---------------------mset name kangbazi name1 kangbazi1 name2 kangbazi2 name3 kangabzi3 name6 kangbazi6 #批量设置 mget name name1 name2 name3 name4  #批量获取

基础操作

redis 有0~15 16个库
select 1 #切换到1号库   默认是0号库
keys * #列出所有的key
keys t* #查看t开头的key
dbsize #查看当前库 key的数量
flushdb #清空当前库
flushall #清空所有库中的key

hash 哈希类型 适合缓存

string是键值对,hash就是键值对的集合 每个hash 能够存放2的32次方-1个键值对

特别适合存放对象

为什么它适合缓存 一个数据表就是一个hash

user表

id name password username age sex height

1 superman 123456 zhangsan 18 0 181cm

hset user1 name username password 123456 age 18  #Linux服务器支持多个属性
hset user1 name username # windows 只支持一个属性hget key 指定的属性  #例子   hget user1 name
hvals key #取出指定key对应的属性对应的值
hkeys key #取出指定key对应的属性hgetall key #取出指定的key 对应的 属性以及属性的值 127.0.0.1:6379> hmset language python num1 java num2 javascript num3 #批量设置多个键值
OK
127.0.0.1:6379> hmget language python java javascript 批量获取指定key 多个属性 对应的值
1) "num1"
2) "num2"
3) "num3"
127.0.0.1:6379> hlen language #查看指定的key 里边有多少个键值对
(integer) 3127.0.0.1:6379> hexists language java #查看指定的key中是否存在某个属性  存在返回1 不存在返回0
(integer) 1
127.0.0.1:6379> hexists language go
(integer) 0127.0.0.1:6379> hmset username name kangbazi8888
OK
127.0.0.1:6379> hstrlen username name #查看指定的key的属性对应的value值的长度
(integer) 12

list 列表


lpush key 元素  #左侧插入一个元素
rpush key 元素  #右侧插入一个元素
lpop key 元素  #移除第一个元素
rpop key 元素   #移除最后一个元素
lindex key 索引值
llen key #查看列表有多少个元素
127.0.0.1:6379[1]> lpush sql mysql  #左侧插入  也叫开头
(integer) 1
127.0.0.1:6379[1]> lpush sql redis
(integer) 2
127.0.0.1:6379[1]> lpush sql mongodb
(integer) 3
127.0.0.1:6379[1]> rpush sql oracle   #右侧插入 也叫结尾
(integer) 4
127.0.0.1:6379[1]> rpush sql rabbitMQ
(integer) 5
127.0.0.1:6379[1]> rpush sql sqlserver
(integer) 6
127.0.0.1:6379[1]> lrange sql 0 6   #开始的位置  结束的位置
1) "mongodb"
2) "redis"
3) "mysql"
4) "oracle"
5) "rabbitMQ"
6) "sqlserver"127.0.0.1:6379[1]> lpop sql #移除左侧第一个元素
"mongodb"rpop sql #移除右侧第一个元素 lindex key 索引值 #lindex sql 0 #查看索引为0的元素
127.0.0.1:6379[1]> llen sql  #查看指定的key列表有多少个元素
(integer) 5127.0.0.1:6379[1]> lset sql 3 mongodb  #将索引为三的元素替换成  mongodb
OK
127.0.0.1:6379[1]> llen sql
(integer) 5
127.0.0.1:6379[1]> lrange sql 0 6
1) "redis"
2) "mysql"
3) "oracle"
4) "mongodb"
5) "sqlserver"
127.0.0.1:6379[1]>

set 无序集合

元素的唯一性

127.0.0.1:6379[2]> sadd redis one two three
(integer) 3
127.0.0.1:6379[2]> smembers redis  #取出所有的元素
1) "three"
2) "two"
3) "one"
127.0.0.1:6379[2]> sadd redis one two three  #因为已经存在 所以返回0
(integer) 0
127.0.0.1:6379[2]> sadd mysql one two three four five
(integer) 5
127.0.0.1:6379[2]> sdiff redis mysql #求差集 谁在前面 结果不一样
(empty list or set)
#我有的 你有 返回空
127.0.0.1:6379[2]> sdiff mysql redis #我有的 你没有 那么返回我有的部分
1) "five"
2) "four"127.0.0.1:6379[2]> sinter redis mysql #求并集 谁在前面 顺序无所谓了
1) "three"
2) "two"
3) "one"127.0.0.1:6379[2]> sunion redis mysql #求合集  顺序无所谓
1) "three"
2) "five"
3) "four"
4) "one"
5) "two"127.0.0.1:6379[2]> sismember mysql six  #判断指定的key中是否存在 指定的元素
(integer) 0
127.0.0.1:6379[2]> sismember mysql five
(integer) 1

有序集合 zset

元素唯一性

zadd key score member  例子:
127.0.0.1:6379[2]> zadd z1 1 one
(integer) 1
127.0.0.1:6379[2]> zadd z1 2 two
(integer) 1
127.0.0.1:6379[2]> zadd z1 3 three
(integer) 1
127.0.0.1:6379[2]> zrange z1 0 3 #类似于 list的lrange  包含第0个位置 第三个位置
1) "zero"
2) "one"
3) "two"
4) "three"127.0.0.1:6379[2]> zrangebyscore z1 0 1 根据分数取出来  包含 0分 和 1分
1) "zero"
2) "one"
127.0.0.1:6379[2]> zrangebyscore z1 2 3
1) "two"
2) "three"127.0.0.1:6379[2]> zadd z1 1 mysql   #分数可以重复 元素不可以重复
(integer) 1
127.0.0.1:6379[2]> zadd z1 1 redis
(integer) 1
127.0.0.1:6379[2]> zadd z1 2 mysql  #已经存在mysql 所以返回0
(integer) 0权重之间元素的数量  zcount key 最小权重值  最大权重值
127.0.0.1:6379[2]> zcount z1 0 2
(integer) 5
127.0.0.1:6379[2]> zrangebyscore z1 0 2
1) "zero"
2) "one"
3) "redis"
4) "mysql"
5) "two"#有序列表指定的key下面有多少个元素
127.0.0.1:6379[2]> zcard z1
(integer) 6

第二十九天 redis应用相关推荐

  1. Python学习笔记第二十九天(N维数组(ndarray))

    Python学习笔记第二十九天 N维数组(ndarray) 构建阵列 索引阵列 ndarray的内部内存布局 阵列属性 内存布局 数据类型 其他属性 阵列接口 ctypes外部功能接口 Array方法 ...

  2. 自学前端第二十九天 CSS高级之细节技巧

    第二十九天 css高级细节技巧 一.background-color :属性设置元素的背景颜色. 定义和用法 background-color 属性设置元素的背景颜色. 元素背景的范围 backgro ...

  3. 第二十九天-ssh服务重要知识深入浅出讲解

    目录概述: 1. SSH简介 2. SSH安全验证方式 3. 安装并测试OpenSSH 4. SSH的密匙    4.1 生成你自己的密匙对    4.2分发公用密匙 5. 配置SSH    5.1 ...

  4. Python学习日记-第二十九天-tcp(客户端)

    系列文章目录 tcp介绍 tcp特点 tcp客户端 一.tcp介绍 Tcp协议,传输控制协议是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC 793定义 TCP通信需要经过创建 ...

  5. 创业失败感悟第二十九天

    和朋友聊起来二次创业的话题,关于下一步的行业与模式选择方面,有一个共同的观点,就是不可以再进行重资产运营,倾向于平台类的公司,需要一个概念来主导. 这种出奇一致的观点,其实也代表了现在很多人的想法,特 ...

  6. 爱创课堂每日一题第二十九天- ES6的了解?

    新增模板字符串(为JavaScript提供了简单的字符串插值功能).箭头函数(操作符左边为输入的参数,而右边则是进行的操作以及返回的值Inputs=>outputs.).for-of(用来遍历数 ...

  7. (100天2小时第二十九天)几种常见的图像噪声及去噪处理算法

    一.背景 在图像获取.传输.存储过程中常常会受到各种噪声的干扰,从而影响图像的质量.并且图像预处理算法的好坏又直接关系到后续图像处理的效果,如图像分割.目标识别.边缘处理等,所以为了获得高质量数字图像 ...

  8. 求职第二十九天—经伟恒润(北京)

    自我介绍 银行家算法 毕设 linux实验//啊啊啊啊啊啊啊我都在瞎几把说些什么啊啊啊啊啊啊啊

  9. 小白学习Java第二十九天

    今日内容 数据库的导入和导出 DQL 基本查询 条件查询 排序查询 函数 分组查询 分页查询 连接查询 一. 导入导出数据库 1.导出数据库 选中要导出的数据库,鼠标右键备份/导出-->备份数据 ...

最新文章

  1. EDIUS输出到文件
  2. 一个球从100m高度自由落下,第10次反弹多高
  3. mssql sqlserver sql脚本自动遍历重复生成指定表记录
  4. 7-20(排序) 奥运排行榜(25 分)
  5. python list map成员排序_python – 同时对多个列表进行排序
  6. 安卓学习笔记45:初探开源框架OrmLite
  7. P1955 [NOI2015]程序自动分析
  8. php extension,php的extension要开启哪些
  9. 【教程】Edraw Max使用教程:创建一个基本流程图
  10. 三菱plc pwm指令_【三菱PLC指令教程】定时器指令应用之时序图编程法(一)
  11. 国际电话号码标准格式
  12. css 的rgba属性
  13. 雷鸣的游戏人生(七) --- 如何谈一场失败的恋爱?
  14. 寻找苹果帝国的二当家
  15. 89c51单片机汇编语言,AT89C2051时钟程序——MCS51单片机汇编程序
  16. Office 2008 for Macintosh: The Missing Manual
  17. DHCP动态分配ip地址
  18. python 实现邮件批量发送(你懂得)
  19. Java实验报告手写_java实验1实验报告(20135232王玥)
  20. 微服务商城mall-swarm本地搭建

热门文章

  1. RecyclerView的全能适配器,带有header和bottom
  2. HTML 樱花飘落界面效果
  3. matlab atem(),非特定人的英文
  4. bilibili缓存视频的位置
  5. Windows应急响应 -Windows日志排查,系统日志,Web应用日志,
  6. Python实现手写数字的识别
  7. 创业实践案例课程答案
  8. 股神巴菲特名言及股神巴菲特选股技巧有哪些
  9. 《学雷锋日-志愿者服务行动》
  10. MD5加密是什么?为什么不可解密?