第二十九天 redis应用
文章目录
- 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应用相关推荐
- Python学习笔记第二十九天(N维数组(ndarray))
Python学习笔记第二十九天 N维数组(ndarray) 构建阵列 索引阵列 ndarray的内部内存布局 阵列属性 内存布局 数据类型 其他属性 阵列接口 ctypes外部功能接口 Array方法 ...
- 自学前端第二十九天 CSS高级之细节技巧
第二十九天 css高级细节技巧 一.background-color :属性设置元素的背景颜色. 定义和用法 background-color 属性设置元素的背景颜色. 元素背景的范围 backgro ...
- 第二十九天-ssh服务重要知识深入浅出讲解
目录概述: 1. SSH简介 2. SSH安全验证方式 3. 安装并测试OpenSSH 4. SSH的密匙 4.1 生成你自己的密匙对 4.2分发公用密匙 5. 配置SSH 5.1 ...
- Python学习日记-第二十九天-tcp(客户端)
系列文章目录 tcp介绍 tcp特点 tcp客户端 一.tcp介绍 Tcp协议,传输控制协议是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC 793定义 TCP通信需要经过创建 ...
- 创业失败感悟第二十九天
和朋友聊起来二次创业的话题,关于下一步的行业与模式选择方面,有一个共同的观点,就是不可以再进行重资产运营,倾向于平台类的公司,需要一个概念来主导. 这种出奇一致的观点,其实也代表了现在很多人的想法,特 ...
- 爱创课堂每日一题第二十九天- ES6的了解?
新增模板字符串(为JavaScript提供了简单的字符串插值功能).箭头函数(操作符左边为输入的参数,而右边则是进行的操作以及返回的值Inputs=>outputs.).for-of(用来遍历数 ...
- (100天2小时第二十九天)几种常见的图像噪声及去噪处理算法
一.背景 在图像获取.传输.存储过程中常常会受到各种噪声的干扰,从而影响图像的质量.并且图像预处理算法的好坏又直接关系到后续图像处理的效果,如图像分割.目标识别.边缘处理等,所以为了获得高质量数字图像 ...
- 求职第二十九天—经伟恒润(北京)
自我介绍 银行家算法 毕设 linux实验//啊啊啊啊啊啊啊我都在瞎几把说些什么啊啊啊啊啊啊啊
- 小白学习Java第二十九天
今日内容 数据库的导入和导出 DQL 基本查询 条件查询 排序查询 函数 分组查询 分页查询 连接查询 一. 导入导出数据库 1.导出数据库 选中要导出的数据库,鼠标右键备份/导出-->备份数据 ...
最新文章
- EDIUS输出到文件
- 一个球从100m高度自由落下,第10次反弹多高
- mssql sqlserver sql脚本自动遍历重复生成指定表记录
- 7-20(排序) 奥运排行榜(25 分)
- python list map成员排序_python – 同时对多个列表进行排序
- 安卓学习笔记45:初探开源框架OrmLite
- P1955 [NOI2015]程序自动分析
- php extension,php的extension要开启哪些
- 【教程】Edraw Max使用教程:创建一个基本流程图
- 三菱plc pwm指令_【三菱PLC指令教程】定时器指令应用之时序图编程法(一)
- 国际电话号码标准格式
- css 的rgba属性
- 雷鸣的游戏人生(七) --- 如何谈一场失败的恋爱?
- 寻找苹果帝国的二当家
- 89c51单片机汇编语言,AT89C2051时钟程序——MCS51单片机汇编程序
- Office 2008 for Macintosh: The Missing Manual
- DHCP动态分配ip地址
- python 实现邮件批量发送(你懂得)
- Java实验报告手写_java实验1实验报告(20135232王玥)
- 微服务商城mall-swarm本地搭建