6.redis
1.Redis的安装以及客户端连接
安装:apt-get install redis-server
卸载:apt-get purge --auto-remove redis-server
启动:redis安装之后默认会自动启动,但是也可以手动启动,service redis-server start
停止:service redis-server stop
客户端连接,一种方式是使用python等语言去连接,还可以使用redis-cli
2.Redis的字符串以及过期时间
3.Redis的列表操作
lpush list value
将value元素插入列表list的左边,如果list不存在则会创建一个名为list的列表,如果存在但不是列表类型则报错
rpush list value
将value元素插入列表list的右边,如果list不存在则会创建一个名为list的列表,如果存在但不是列表类型则报错
lrange list start stop
遍历列表list,start为起始范围,stop结束范围
lpop list
移除并返回list的头元素
rpop list
移除并返回list的尾元素
lrem list count value
删除list中count个值为value的元素。count>0,从前往后删除count个,count<0,从后往前删除|count|个,count=0,全部删除
lindex list index
返回list中索引为index的元素,但是不会删除
llen list
查看有多少个元素
4.Redis的集合操作
sadd set value1 value2
往集合set中添加元素,可以一次性添加多个。和列表一样,同样不需要创建。注意:集合的元素不能重复,尝试重复添加元素,不会报错,但是添加不进去
smembers set
查看set所有的元素
srem set val
移除集合中值为val的元素,这个和列表类似,列表是list所以lrem,集合是set,所以是srem,rem是remove的简写
scard set
查看集合中元素的个数
sinter set1 set2
查看两个集合的交集
sunion set1 set2
查看两个集合的并集
sdiff set1 set2
查看两个集合的差集
5.Redis的哈希操作
hset map key value
给map添加一个key-value键值对
hget map key
获取map中键为key的值
hdel map key
删除map中键为key值
hgetall map
获取map中所有的键值对
hkeys map
获取map中所有的key
hexists map key
判断map中是否存在键为key的键值对
hlen map
查看map的键值对的个数
6.Redis的事务操作
- 事务操作:redis事务一次可以执行的多个命令,事务具有以下特征
- 隔离操作:事务中的所有操作都会序列化、按顺序的进行,不会被其他命令打扰
监视一个或多个key
但是如果我在其他的窗口执行了该操作
取消监视:unwatch key,不加key则是全部取消
7.Redis的发布订阅操作
订阅某个频道:subscribe channel
给某个频道发送信息:publish channel message
首先要先有订阅,才能去发送信息,否则都没有人订阅,发给谁啊。既然有订阅有发布,那么我们就要有两个窗口
再来看看当前的订阅的终端
8.RDB和AOF两种数据持久化的方式
redis的一大特点就是可以将数据持久化到磁盘上,我们之前的操作都是基于内存,一旦关闭程序,那么数据就丢失了。
而redis为我们提供了两种数据持久化的方式,一种是RDB,另一种是AOF
1.开启和关闭:
RDB:默认是开启的。如果把配置文件/etc/redis/redis.conf中所有的save给注释掉,就关闭了
AOF:在配置文件中appendonly yes为开启,appendonly no则关闭
看一下配置文件
2.同步机制:
RDB:可以指定某个时间内发生多少个命令进行同步。比如一分钟内发生了两次命令,就进行一次同步。
AOF:每秒同步或者每次发生命令后同步
3.存储内容:
RDB:存储的是redis里面具体的值
AOF:存储的是执行的写操作命令
4.存储文件的路径:
RDB:根据dir和dbfilename来指定具体路径和的文件名
AOF:根据dir和appendfilename来指定具体的路径和文件名
5.优缺点
优点:
RDB: 1.存储数据到文件中会进行压缩,文件体积比AOF小。2.因为存储的是redis具体的值,并且会经过压缩,因此在恢复的时候比AOF块。3.非常适用于备份
AOF:1.AOF的策略是每秒钟或者每次发生写操作的时候都会同步,因此即使服务器发生故障,也只会丢失一秒的数据。2.AOF存储的是redis命令并且直接追加到aof文件后面,因此每次备份的时候只要添加新的数据进去就可以了。3.如果AOF文件比较大,那么redis会进行重写,只保留最小的命令集合
缺点:
RDB:RDB在多少时间内发生了多少写操作的时候就会发出同步机制,因为采用压缩机制,RDB在同步的时候都重新保存整个redis中的数据,因此一般会设置在最少5分钟内才保存一次数据。在这种情况下,一旦服务器故障,就会造成5分钟的数据丢失。2.在数据保存进RDB的时候,redis会fork出一个子进程用来同步,在数据流比较大的时候可能会非常耗时
AOF:1.AOF文件因为没有压缩,因此体积比RDB大。2.AOF是在每秒或者每次写操作都进行备份,因此如果并发量比较大,效率会有点低。3.因为存储的是命令,因此在灾难恢复的时候redis会重新运行AOF文件里的命令,速度不及RDB
9.redis设置连接密码
这样的话,当别人进入redis想乱搞的话,就不可能了。
也可以在登录的时候 指定密码,redis-cli -p 6379 -h 127.0.0.1 -a zgg
10.其他机器连接本机redis
默认只能本机连接,如果想要其他机器也能连接,那么需要更改一下配置文件
11.python操作redis
操作字符串
操作列表
操作集合
操作哈希
事务操作
发布与订阅
6.redis的更多相关文章
- 使用redis构建可靠分布式锁
关于分布式锁的概念,具体实现方式,直接参阅下面两个帖子,这里就不多介绍了. 分布式锁的多种实现方式 分布式锁总结 对于分布式锁的几种实现方式的优劣,这里再列举下 1. 数据库实现方式 优点:易理解 缺 ...
- Ignite性能测试以及对redis的对比
测试方法 为了对Ignite做一个基本了解,做了一个性能测试,测试方法也比较简单主要是针对client模式,因为这种方法和使用redis的方式特别像.测试方法很简单主要是下面几点: 不作参数优化,默认 ...
- mac osx 安装redis扩展
1 php -v查看php版本 2 brew search php|grep redis 搜索对应的redis ps:如果没有brew 就根据http://brew.sh安装 3 brew ins ...
- Redis/HBase/Tair比较
KV系统对比表 对比维度 Redis Redis Cluster Medis Hbase Tair 访问模式 支持Value大小 理论上不超过1GB(建议不超过1MB) 理论上可配置(默认配置1 ...
- Redis数据库
Redis是k-v型数据库的典范,设计思想及数据结构实现都值得学习. 1.数据类型 value支持五种数据类型:1.字符串(strings)2.字符串列表(lists)3.字符串集合(sets)4.有 ...
- redis 学习笔记(2)
redis-cluster 简介 redis-cluster是一个分布式.容错的redis实现,redis-cluster通过将各个单独的redis实例通过特定的协议连接到一起实现了分布式.集群化的目 ...
- redis 学习笔记(1)
redis持久化 snapshot数据快照(rdb) 这是一种定时将redis内存中的数据写入磁盘文件的一种方案,这样保留这一时刻redis中的数据镜像,用于意外回滚.redis的snapshot的格 ...
- python+uwsgi导致redis无法长链接引起性能下降问题记录
今天在部署python代码到预生产环境时,web站老是出现redis链接未初始化,无法连接到服务的提示,比对了一下开发环境与测试环境代码,完全一致,然后就是查看各种日志,排查了半天也没有查明是什么原因 ...
- nginx+iis+redis+Task.MainForm构建分布式架构 之 (redis存储分布式共享的session及共享session运作流程)
本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,上一篇分享文章制作是在windows上使用的nginx,一般正式发布的时候是在linux来配 ...
- windows+nginx+iis+redis+Task.MainForm构建分布式架构 之 (nginx+iis构建服务集群)
本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,由标题就能看出此内容不是一篇分享文章能说完的,所以我打算分几篇分享文章来讲解,一步一步实现分 ...
随机推荐
- vs code的local history插件
使用vs code来编写前端代码,内存的使用比webstrom要少很多. vs code可以下载中文及debug插件,使用起来会方便很多. vs code不像idea或者webstrom有local ...
- 网站集成Paypal
国际化Paypal是一个不错的选择,现在很多的app都是H5,所以网站集成即可操作了. 最方便快捷的集成方式,目前Paypal的网站收款需要企业账号,不过它最开始的老版本是可以个人账号收款的.如下是个 ...
- JavaScript基础入门08
目录 JavaScript 基础入门08 DOM 介绍 绑定事件 给一组元素绑定事件 节点 节点树 节点类型 选取文档内容 通过id选取元素 通过指定的标签名选取元素 用指定的css类来选取元素 通过 ...
- DDoS攻击的几种类型
DDoS攻击的几种类型 随着网络攻击的简单化,如今DDoS攻击已经不止出现在大型网站中,就连很多中小型网站甚至是个人网站往往都可能面临着被DDoS攻击的的风险.或许很多站长对DDoS攻击并不是很了 ...
- C#编程 线程,任务和同步(2) 开启线程
创建线程的几种方法: 1 异步委托 创建线程的一种简单方式是定义一个委托,并异步调用它. 委托是方法的类型安全的引用.Delegate类 还支持异步地调用方法.在后台,Delegate类会创建一个执行 ...
- LeetCode.1122-相对排序数组(Relative Sort Array)
这是小川的第393次更新,第427篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第258题(顺位题号是1122).给定两个数组arr1和arr2,arr2中的元素是不同的 ...
- windows中service.msc与regedit
Services.msc是Windows2000/XP/2003/Vista/7/2008/8/8.1/10系统中用来启动.终止并设置 Windows 服务的管理策略. 作用:控制系统服务. 性质:系 ...
- 【DSP开发】回马枪要你命 德州仪器发布最强ARM芯片Keystone II
之前许多传闻称德州仪器将会彻底放弃OMAP系列ARM处理器,从此离开手持设备的江湖.如果你信以为真,那可就太小看德州仪器这个老狐狸了--要知道德州仪器诞生的比Intel都还早几年.三小时前,德州仪器宣 ...
- 记录Linq中lambda动态表达式的使用方式
项目中有的时候我们会用到动态表达式的方式去查询数据,这里简单记录下个人的使用方式,方便使用↓ //构建参数表达式 ParameterExpression parameter = Expression. ...
- [转帖]Java 8新特性探究(九)跟OOM:Permgen说再见吧
Java 8新特性探究(九)跟OOM:Permgen说再见吧 https://my.oschina.net/benhaile/blog/214159 need study 很多开发者都在其系统中见过“ ...