redis小结

Redis

切换到redis的目录

启动:./redis-server

关闭:killall redis-server

Redis的数据类型:

String字符  list链表  set集合(无序)  Sort Set排序(有序) hash数据类型

string类型的数据操作

redisstring可以包含任何数据。包括jpg图片或者序列化的对象。

单个value值最大上限是1G字节。

set key value 设置key对应的只为string类型的value

set key  value  EX  过期秒数

set key  value  PX  过期毫秒数

get key 获取key的值

mset key1 value1 ... keyN valueN 一次设置多个key的值

mget key1 key2 ... keyN 一次获取多个key的值

Key的操作

给被存储信息取的的一个“名字”

>exists key 测试指定key是否存在

>del key1 key2 ... keyn 删除指定key

>type key 返回key的类型

>keys pattern 返回指定模式匹配的所有key

  keys col* 获得所有名字为col开始的key的信息

  keys  *                      获得当前redis数据库全部的key

>rename oldkey  newkey 修改名字

>dbsize 返回当前数据库key的数量

>expire key seconds   key指定过期时间

>ttl key 返回key的剩余生命时间

>select dbindex 选择数据库

redismysql数据库相似的地方是有多个数据库供操作

>move key dbindex key从当前数据库移动到指定数据库

>flushdb 删除当前数据库中所有key

>flushall 删除所有数据中的所有key

数据类型list链表

链表使用特点:

  • 数据进入链表后有严格的先后顺序关系
  • 允许相同的元素内容重复进入链表
  • 链表可以在头部进入数据、尾部出数据,也可以在头部进、头部出[与栈数据结构一致]
  • 链表中存储的单元数据都是”String字符串”类型

 

lpush key  string   key对应的链表的头部添加字符串元素

  lpush(left push)从链表左侧添加单元数据

  可以多次调用,代表给链表添加多个数据

rpop key list的尾部删除元素,并返回删除的元素

  rpop(right pop)从链表的右侧删除数据

llen key 返回key对应list链表的长度

  llen(list length)

key不存在返回0

如果key对应类型不是list返回错误

lrange key start end 返回指定区间内的元素,下标从0开始

  lrange(left range)从链表的左侧获得范围内的元素出来,范围下标从0开始

rpush key string 同上,在尾部添加元素

  rpush(right push)从链表右侧添加单元数据

lpop key list的头部删除元素,并返回删除元素

  lpop(left pop)从链表的左侧删除数据

ltrim key start end     截取list,保留指定区间内元素

  ltrim(left trim),从左侧做截取保留

Set 集合类型

特点:

  • 内部数据没有先后顺序(不同于list链表)
  • 内部各个元素彼此都是唯一的,不能重复(不同于list链表)
  • 集合中的各个元素类型都是String类型
  • 除了基本的添加,删除的数据操作,还包括,取交、并、差集合的数据操作

sadd key member [member...] 添加一个string元素到key对应的set集合中

成功返回1

如果元素存在,返回0,操作无效

可以调用多次,给一个集合添加多个元素

srem key member [remove]key对应的set中移除给定元素

smove p1 p2 member p1集合中移除member成员后添加给p2集合

scard key 返回集合的元素个数

sismember key member   判断member是否在集合中

sinter key1 key2 ... keyN 返回所有给定key的交集

sunion key1 key2 ... keyN 返回所有给定key的并集

sdiff key1 key2 ... keyN 返回所有给定key的差集

  内部有key1的元素,不会有key2keyN的任何元素

smembers key 返回key对应集合的全部元素

  list中的lrange方法相似

Sort set排序集合

set一样sorted set也是string类型元素的集合,

Sort  Set类型 可以想象成是 setlist结合的排序集合类型

 

sort set集合内部的每个元素都会关联一个。该权是衡量元素顺序的标准(生活中权可以是身高、分数、商品热卖数量)

通过权可以有序的排列获取集合中的元素

 

sort set中每个元素分为两部分:值、权

zadd key score()  member()  scoreN memberN ..

添加元素到集合

元素在集合中存在则更新对应的score

该方法操作元素,存在就更新,不存在就添加

一次性可以设置1个或多个元素

zrem key member (remove)删除指定元素,1表示成功,0表示不存 在该元素

zrange key start end 返回集合中指定区间的元素,

(范围是权值由小到大排序的序号,序号是从0 )

 

zrevrange key start end (reverse反转)

返回集合中指定区间的元素,

(范围是权值由大到小排序的序号,序号是从0 )

zcard key    返回集合中元素个数

zremrangebyrank key start stop 删除集合中排名在给定区间的元素

(范围是权值由小到大排序的序号,序号是从0 )

Hash数据类型

hash类型存储信息的样子与数据表的单条记录非常相似

设置一个key后,可以为该key设置多个field域名  field域名的值

 

hsetHSET key field value  每次设置一个域

hmsetHMSET key field value [field value ...]  允许一次性设置多个域

hgetHGET key field 获得一个key的一个域的信息

hmgetHMGET key field [field ...]  获得一个key的多个域的信息

Hash快照持久化:

文档中所写内容案例:

save 900 1 #900 (15分钟)内如果超过 1 key 被修改,则发起快照保存

save 300 10      #300(5分钟)超过10key被修改,发起快照

save 60 10000    #60(1分钟)超过10000key被修改,发起快照

linux终端手动发起快照持久化

 ./redis-cli  [-h 主机名ip  -p 端口号码]  bgsave

 ./redis-cli  -h  ip地址  -p 端口  bgsave

Redis设置密码:

./redis-cli  -a  密码      //设置连接密码

②登录到redis操作终端通过auth命令设置连接密码

> auth  密码

 

Redis总结:

  1. Redis各种数据类型

String字符类型

Set  get  mset  mget

(1) List链表[应用在最新商品展示]:

lpush  lrange   rpop   llen   ltrim   rpush  lpop

(2) Set集合[应用在促销商品]:

sadd  srem  smove  scard   sismember  sinter  sunion  sdiff  smembers

(3) SortSet排序集合[应用在热卖商品]:

zadd  zrem  zrange  zrevrange  zcard  zremrangebyrank

(4) Hash:  

hset  hget  hmset  hmget

  1. 持久化

(1) rdb 快照  dump.rdb    频率:15分钟  5分钟  1分钟    bgsave

(2) aof  追加    bgrewriteaof

远程操作:./redis-cli  -h  ip地址  -p 端口  -a  密码   bgsave/bgrewriteaof

 

PHP操作redis

① 实例化对象

$redis = new Redis();

② 连接redis服务

//临时连接,长时间不操作,则会自动断开

//该连接适合”浏览器的http”的一次性请求

$redis -> connect('192.168.18.121',6379);

//长连接,客户端不手动发起关闭,则不会自己关闭

//服务器后台使用,该程序24小时不中断执行,就适合使用该长连接

$redis -> pconnect('192.168.18.121',6379);

③设置连接密码

$redis -> auth(密码);

④选择数据库[默认操作0标号数据库]

$redis -> select(0-15);

string操作

$redis->set(key, value);

$redis->get(key);

$redis->mset([key=>value,key=>value,key=>value...]);

$redis->mget([key1,key2,key3]);

 

 

list相关操作

lPush

$redis->lPush(key, value);

rPush

$redis->rPush(key, value);

lPop/rPop

$redis->lPop('key');

lRange

$redis->lRange('key1', 0, -1);

lTrim

$redis->lTrim('key', start, end);

 

 

SET操作相关

sAdd

$redis->sAdd(key , value);

sRem

$redis->sRem('key1', 'set2');

sMove

$redis->sMove(seckey, dstkey, value);

sIsMember

$redis->sIsMember(key, value);

$redis->sCard('key')

sInter

$redis->sInter(array('key1', 'key2')) or $redis->sInter('key1', 'key2')

sUnion

$redis->sUnion('s0', 's1', 's2');

 

zsetsorted set)操作相关

$redis->zAdd('key', 5, 'val5');

$redis->zRange('key', 0, -1);

$redis->zRange('key1', 0, -1); // with scores $redis->zRange('key1', 0, -1, true);

zRem(key, member) :删除名称为keyzset中的元素member

$redis->zAdd('key', 10, 'val10');

$redis->zDelete('key', 'val2');

$redis->zRange('key', 0, -1);

$redis->zAdd('key', 10, 'val10');

$redis->zRevRange('key', 0, -1); // with scores $redis->zRevRange('key', 0, -1, true);

zRemRangeByScore, zDeleteRangeByScore

$redis->zRemRangeByScore('key', start, end);

 

转载于:https://www.cnblogs.com/lovecatcher/p/9067769.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/389608.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WIN10下ADB工具包安装的教程和总结 --201809

ADB(Android Debug Bridge)是Android SDK中的一个工具, 使用ADB可以直接操作管理Android模拟器或者真实的Andriod设备。 ADB主要功能有: 在Android设备上运行Shell(命令行)管理模拟器或设备的端口映射在计算机和设备之间上传/下载文件将电脑上的本地APK软…

1816. 截断句子

1816. 截断句子 句子 是一个单词列表,列表中的单词之间用单个空格隔开,且不存在前导或尾随空格。每个单词仅由大小写英文字母组成(不含标点符号)。 例如,“Hello World”、“HELLO” 和 “hello world hello world”…

spark的流失计算模型_使用spark对sparkify的流失预测

spark的流失计算模型Churn prediction, namely predicting clients who might want to turn down the service, is one of the most common business applications of machine learning. It is especially important for those companies providing streaming services. In thi…

峰识别 峰面积计算 peak detection peak area 源代码 下载

原文:峰识别 峰面积计算 peak detection peak area 源代码 下载Comparative analysis of peak-detection techniques for comprehensive two-dimensional chromatography http://www.docin.com/p-172045359.html http://terpconnect.umd.edu/~toh/spectrum/ipeak.html R…

区块链开发公司谈区块链与大数据的关系

在过去的两千多年的时间长河中,数字一直指引着我们去探索很多未知的科学世界。到目前为止,随着网络和信息技术的发展,一切与人类活动相关的活动,都直接或者间接的连入了互联网之中,一个全新的数字化的世界展现在我们的…

Jupyter Notebook的15个技巧和窍门,可简化您的编码体验

Jupyter Notebook is a browser bases REPL (read eval print loop) built on IPython and other open-source libraries, it allows us to run interactive python code on the browser.Jupyter Notebook是基于IPL和其他开源库构建的基于REPL(读取评估打印循环)的浏览器&#…

给定有权无向图的邻接矩阵如下,求其最小生成树的总权重,代码。

#include<bits/stdc.h> using namespace std; #define INF 0x3f3f3f3f const int maxn 117; int m[maxn][maxn]; int vis[maxn], low[maxn]; /* 对于这道题目来将&#xff0c;m就是临接矩阵&#xff0c;vis是访问标记数组&#xff0c;low是最短距离数组 */ int n; int …

Ubuntu-16-04-编译-Caffe-SSD

该来的还是要来 之前为了偷懒想到使用 Docker 回避 Caffe SSD 编译的难题。结果&#xff0c;「天道好轮回&#xff0c;苍天饶过谁」。Docker 镜像内无法调用 GUI 显示以及摄像头&#xff0c;没法跑 ssd_pascal_webcam.py 做实时 Object Detection。所以没办法又得重新尝试编译 …

bi数据分析师_BI工程师和数据分析师的5个格式塔原则

bi数据分析师Image by Author图片作者 将美丽融入数据 (Putting the Beauty in Data) Have you ever been ravished by Vizzes on Tableau Public that look like only magic could be in play to display so much data in such a pleasing way?您是否曾经被Tableau Public上的…

BSOJ 2423 -- 【PA2014】Final Zarowki

Description 有n个房间和n盏灯&#xff0c;你需要在每个房间里放入一盏灯。每盏灯都有一定功率&#xff0c;每间房间都需要不少于一定功率的灯泡才可以完全照亮。 你可以去附近的商店换新灯泡&#xff0c;商店里所有正整数功率的灯泡都有售。但由于背包空间有限&#xff0c;你…

WPF绑定资源文件错误(error in binding resource string with a view in wpf)

报错&#xff1a;无法将“***Properties.Resources.***”StaticExtension 值解析为枚举、静态字段或静态属性 解决办法&#xff1a;尝试右键单击在Visual Studio解决方案资源管理器的资源文件&#xff0c;并选择属性选项&#xff0c;然后设置自定义工具属性 PublicResXFile cod…

因果推论第六章

因果推论 (Causal Inference) This is the sixth post on the series we work our way through “Causal Inference In Statistics” a nice Primer co-authored by Judea Pearl himself.这是本系列的第六篇文章&#xff0c;我们将通过Judea Pearl本人与他人合着的《引诱统计学…

如何优化网站加载时间

一、背景 我们要监测网站的加载情况&#xff0c;可以使用 window.performance 来简单的检测。 window.performance 是W3C性能小组引入的新的API&#xff0c;目前IE9以上的浏览器都支持。一个performance对象的完整结构如下图所示&#xff1a; memory字段代表JavaScript对内存的…

VMWARE VCSA 6.5安装过程

https://www.tech-coffee.net/step-by-step-deploy-vcenter-server-appliance-vcsa-6-5/ vcsa 6.0&#xff0c;6.5 注册机下载 链接:https://pan.baidu.com/s/1X5V-iWpvxozrwE7Ji099jw 密码:jt8l 转载于:https://www.cnblogs.com/flyhgx/p/9073485.html

熊猫数据集_处理熊猫数据框中的列表值

熊猫数据集Have you ever dealt with a dataset that required you to work with list values? If so, you will understand how painful this can be. If you have not, you better prepare for it.您是否曾经处理过需要使用列表值的数据集&#xff1f; 如果是这样&#xff0…

聊聊jdk http的HeaderFilter

序 本文主要研究一下jdk http的HeaderFilter。 FilterFactory java.net.http/jdk/internal/net/http/FilterFactory.java class FilterFactory {// Strictly-ordered list of filters.final LinkedList<Class<? extends HeaderFilter>> filterClasses new Linked…

旋转变换(一)旋转矩阵

1. 简介 计算机图形学中的应用非常广泛的变换是一种称为仿射变换的特殊变换&#xff0c;在仿射变换中的基本变换包括平移、旋转、缩放、剪切这几种。本文以及接下来的几篇文章重点介绍一下关于旋转的变换&#xff0c;包括二维旋转变换、三维旋转变换以及它的一些表达方式&#…

数据预处理 泰坦尼克号_了解泰坦尼克号数据集的数据预处理

数据预处理 泰坦尼克号什么是数据预处理&#xff1f; (What is Data Pre-Processing?) We know from my last blog that data preprocessing is a data mining technique that involves transforming raw data into an understandable format. Real-world data is often incom…

Pytorch中DNN入门思想及实现

DNN全连接层&#xff08;线性层&#xff09; 计算公式&#xff1a; y w * x b W和b是参与训练的参数 W的维度决定了隐含层输出的维度&#xff0c;一般称为隐单元个数&#xff08;hidden size&#xff09; b是偏差值&#xff08;本文没考虑&#xff09; 举例&#xff1a; 输…

IDEA去除mapper.xml文件中的sql语句的背景色

2019独角兽企业重金招聘Python工程师标准>>> IDEA版本 2017.3 mapper.xml文件中的sql语句&#xff0c;总是黄色一大片&#xff0c;看起来不舒服。 按如下设置进行设置即可 此时设置完还有点背景色 再进行一个设置 Ok,完美解决 转载于:https://my.oschina.net/u/3939…