Redis

数据类型:

String

Hash

String类型:

一个key对应一个value,二进制安全的。

set方法:设置对应值的value

set name value

get方法:获取对应的值

get name

setnx: 设置value,如果name存在则返回0,设置失败;不存在返回1,设置成功

setnx name value

setex:设置值的有效期:时间为妙

setex name 10 yuzy 设置name的有效期为10秒

setrange:从第几个字符开始替换,返回替换之后的字符串长度

set email tiedayzy@163.com  设置email

setrange email 0 yuzy  从第0个字符开始,替换,替换后的结果为yuzyayzy@163.com

mset:一次设置多个值

mset key1 value1 key2 value2 key3 value3 …

msetnx:(nx  not exit)一次设置多个值,如果有一个设置不成功,则都不成功

incr:递增,每次加1,只能是数子,不然会报错

incr name

incrby :指定每次递增的数量

incrby name 6/-6 设置增加几个

decr:递减

decrby:指定每次递减的数量

append: 字符串连接方法

strlen:字符串长度

get:

getset:设置新的值,并返回原来的值

getrange:获取子字符串

getrange email 0 4

mget:一次获取多个值

HASH:哈希类型

String类型的field和value的映射表。特别适合存储对象,相对于string类型存储对象,hash需要更少的内存。

Hset :设置hash field 为指定值,如果key不存在,则创建

hset user:001 name yuzy 第一个参数为hash的名称,第二个为hash的字段,紧接着为字段对应的值

Hsetnx:key不存在,则成功,存在则设置失败

hset user:001 pass yuzy 成功

hset user:001 name yu 失败

hmset:同时设置一个hash的多个field

hmset user:001 name yuzy pass yuzy

hdel:删除hash里的某一个field

hdel user:001 pass

hincrby: 对某个field自增

hmset user:002 name yuzy pass yuzy age 20

hincrby user:002 age 6

hexists:查看hash里的某个field是否存在

hexits user:002 age

hlen:返回指定hash的field的数量

hlen user:002

hget:获取hash的对应值

hmget:获取一个hash的过个field

hkeys:获取hash里所有的key

hkeys user:001

hvals:获取hash里面的所有的value

hvals user:002

hgetall:获取hash里的所有的key和value

hgetall user:003

list

是一个链表结构,主要功能是push,pop,获取一个范围的所有值。操作中key理解为链表的名字。

Redis中的list每个子元素都是string类型 的  双向链表。可以从头部和尾部进行添加和删除元素。因此既可以做栈,也可以做  队列

lpush:从list的头部,压入一个元素,取出来之后是一个栈的结构

lpush list1 “hello”

lpush list1 “world”

取出结果为  world  hello

rupush:从list的队尾添加元素,先进的先出,所以是一个队列的结构

rpush list2  “hello”

rpush list2 “world”

取出来为hello  world

linsert:在某个位置插入

linsert name before “hello” 123 我这里有两个hello,会发现只有在第一次出现hello的前面添加了123

lset:修改指定位置的值

lset name 1 “yuzy”

lrem :在list中删除,N个与value相同的值,N<0的时候,代表从尾部开始删除,N=0代表全部删除

lrem name 3 hello

ltrim:保留指定key的范围内的数据

ltrim name 1 -1

lpop:从list的头部删除一个元素

lpop name

rpop:从list的尾部弹出一个元素

rpop name

rpoplpush:从一个list的尾部弹出一个元素,并压入到另一个list的头部

rpoplpush l1 l2

lindex:返回名称为key的list中index位置的元素

lindex name 2

lrange:取元素

lrange list 0 -1 0表示从头部第0个元素开始,-1表示尾部的最后一个,所以去不全部元素,

sets类型,无序集合

set是集合,是string类型的无序集合。Set是通过hash和table来实现的,添加、删除、查找的复杂度都是O(1)。对集合我们可以取并集、交集、差集。通过这个我们可以实现sns中好友的推荐和blog的推荐。

sadd:向set中添加元素,不允许存在相同元素

sadd set1 one

srem:在set中删除指定的元素

srem set1 one

spop:随机返回并删除集合中的一个元素

smembers:查看set中的元素

smembers set1

sdiff:返回两个集合中不同的部分,是指:在第一个集合中存在第二个集合不存在。

Sdiff s1 set

Sdiffstore: 比较两个集合的差集,并将结果存到另一个集合中

Sdiffstore s2 s1 set 将s1与set的交集,取出来,放到s2中

sinter:获取连个集合的交集

Sinter s1 s2

sinterstore:获取两个集合的交集,并存储到另一个集合

Sinter set s1 s2

sunion:获取连个集合的并集

sunionstore:获取两个集合的并集,并存储

smove:将第一个集合中的元素,移动到第二个集合中

Smove s1 s2 one 将s1中的one元素,移动到s2中

scard :返回集合中的元素个数

Scard s1

sismember:判断某个元素是否在集合中

Sismember s1 one

srandmember:随机返回一个元素

Srandmember s1

zset:有序集合类型

sorted set 是set的一个升级版本,在set基础上增加一个顺序属性。此属性在添加,修改时可以修改。可以理解为有两列的MySQL表,一列为order,一列为value。Key理解为zset的名称

zadd:有序集合中添加元素

zadd zset 1 one

zrem : 删除集合中的对应元素

zrem zset one

zrange:返回集合中的元素

zrange zset 0 -1

zincrby: 如果key对应的元素在zset中存在,则元素增加对应数量,如果不存在,则把increment的值作为key对应的元素值

zrank:返回元素在集合中的索引值

zrevrank:返回集合中的元素列表,并按照score从大到小排序,然后获取对应元素的下标

zrevrank zset one

zrevrange:按照score降序排序

zrevrange set 0 -1 withrange

zrangebyscore:返回对应score范围内的元素

zrangebyscore zset 5 8

zcount:返回给定的score区间中,元素的个数

zcount zset 5 9

zcard:返回集合中的元素个数

zcard zset

zremrangebyrank:按下标来排序,然后删除

zremrangebyrank set 0 2

zremrangebyscore:按添加时设置的score来排序,然后删除

redis常用命令

键值的相关命令

keys:返回对应的key

keys *

exists:对应的key是否存在

del:删除对应的数据

exists:判断是否存在

expire:设置键的过期时间

ttl:查看键的过期时间

select:选择数据库

move:将当前数据库的变量,转移到其他数据库

move name 1 将name,转移到数据库1

persist:取消过期时间

randomkey:随机返回key

rename :重命名

rename  oldname  newname

type:键的数据类型

服务器相关命令

Ping:测试连接是否成功

Echo:打印命令

Select:选择数据库

Quit、exit:退出连接

Dbsize:返回当前数据库中,key的数量

Info:获取服务器的信息

Config get:实时转储收到的请求

Config get * 返回所有的配置信息

Flushdb:删除当前选择数据库中的所有的key

Flushall:删除所有数据库中的所有的键

Redis的高级应用

安全性:

添加密码:

修改redis.conf ;找到requirepass 密码  添加密码

登录可以 直接连接客户端之后,使用  auth 密码来授权

或者打开客户端的时候  redis-cli –a 密码来登录

主从复制:

事务处理:

Redis支持简单的事物,只能保证一个client发起的事务中的命令连续执行,而中间不会插入其他的client命令。

当一个  client 连接发出multi命令的时候,该链接后续的命令不会立即执行,而是先放在队列中,当执行exec命令时,redis会顺序执行队列中的所有命令。

Muliti  exec 事务处理

Discard 命令来取消队列。

数据持久化:

两种方式:一个是快照,aof方式。

发布、订阅信息

Publish发布消息:publish Chanel1 test

Subscribe或者psubscribe接收消息:subscribe Chanel1

虚拟内存

Vm相关配置

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. 20145218 GDB调试汇编堆栈过程分析

    GDB调试汇编堆栈过程分析 虚拟机中分析过程 输入gcc - g example.c -o example -m32指令在64位机器上产生32位汇编,但出现以下错误: 这时需要使用sudo apt-g ...

  2. express+gulp构建项目(五)swig模板

    这里的文件负责配置swig模板引擎. index.js var jsonHash = require('./json_file'); var staticTag = require("./t ...

  3. 网页边框样式与style样式部分总结

    1).border边框样式:border-style:solid 边框样式值如下: none : 无边框.与任何指定的border-width值无关 hidden : 隐藏边框.IE不支持 dotte ...

  4. [HTML/HTML5]9 使用表单

    9.1  创建基本表单 表单都具有相同的基础结构.即它都包含表单的的开始标记<form>和结束标记</form>.<input>控件和处理表单的方法.form元素包 ...

  5. zend create project prepare

    1.php ini 安装pear 设置include_path 2.apache AllowOverride LoadModule rerwite去掉注释 <VirtualHost *:> ...

  6. C#如果把A.new()编译成new A()

    缘由 对于初次接触某个第三方库的C#开发者,假如要调用里面一个方法,发现需要一个A类型的实例作为参数,怎么获得这个实例呢? 我想大多数人会先尝试new A吧: 如果没有,可能会尝试输入A.看看有没可能 ...

  7. Application.Run()和Form.Show()以及Form.ShowDialog()

    ShowDialog()弹出模式化的窗体 Show()弹出非模式化的窗体 模式窗体,在关闭或隐藏前无法切换到主窗体. 非模式窗体,变换焦点使不必关闭窗体 总结:显示重要的信息,还是用模式窗体,如删除文 ...

  8. CSS3新增的选择器和属性

    <!doctype html>无标题文档 一.新增的选择器 CSS3新增的属性选择器 {除ie6外的大部分浏览器支持) 序号 选择器 含义 实例 1 E[att^="val&qu ...

  9. 安卓xml文件中常见的问题

    1.EditText显示不完全

  10. UImenuController

    长按出现选择项:关键方法 在 tabview 中需要制定 tabview 的一些方法:关键为 在某种特殊情况下,需要自定义的时候:采用如下方式