数据操作

  • redis是key-value的数据,所以每个数据都是一个键值对
  • 键的类型是字符串
  • 值的类型分为五种:

    • 字符串string
    • 哈希hash
    • 列表list
    • 集合set
    • 有序集合zset
  • 数据操作的全部命令,可以查看中文网站

  • 接下来逐个介绍操作各类型的命令

string

  • string是redis最基本的类型
  • 最大能存储512MB数据
  • string类型是二进制安全的,即可以为任何数据,比如数字、图片、序列化对象等

命令

设置

  • 设置键值
set key value
  • 设置键值及过期时间,以秒为单位
SETEX key seconds value
  • 设置多个键值
MSET key value [key value ...]

获取

  • 根据键获取值,如果不存在此键则返回nil
GET key
  • 根据多个键获取多个值
MGET key [key ...]

运算

  • 要求:值是数字
  • 将key对应的value加1
INCR key
  • 将key对应的value加整数
INCRBY key increment
  • 将key对应的value减1
DECR key
  • 将key对应的value减整数
DECRBY key decrement

其它

  • 追加值
APPEND key value
  • 获取值长度
STRLEN key

键的命令

  • 查找键,参数支持正则
KEYS pattern
  • 判断键是否存在,如果存在返回1,不存在返回0
EXISTS key [key ...]
  • 查看键对应的value的类型
TYPE key
  • 删除键及对应的值
DEL key [key ...]
  • 设置过期时间,以秒为单位
  • 创建时没有设置过期时间则一直存在,直到使用使用DEL移除
EXPIRE key seconds
  • 查看有效时间,以秒为单位
TTL key

hash

  • hash用于存储对象,对象的格式为键值对

命令

设置

  • 设置单个属性
HSET key field value
  • 设置多个属性
HMSET key field value [field value ...]

获取

  • 获取一个属性的值
HGET key field
  • 获取多个属性的值
HMGET key field [field ...]
  • 获取所有属性和值
HGETALL key
  • 获取所有的属性
HKEYS key
  • 返回包含属性的个数
HLEN key
  • 获取所有值
HVALS key

其它

  • 判断属性是否存在
HEXISTS key field
  • 删除属性及值
HDEL key field [field ...]
  • 返回值的字符串长度
HSTRLEN key field

list

  • 列表的元素类型为string
  • 按照插入顺序排序
  • 在列表的头部或者尾部添加元素

命令

设置

  • 在头部插入数据
LPUSH key value [value ...]
  • 在尾部插入数据
RPUSH key value [value ...]
  • 在一个元素的前|后插入新元素
LINSERT key BEFORE|AFTER pivot value
  • 设置指定索引的元素值
  • 索引是基于0的下标
  • 索引可以是负数,表示偏移量是从list尾部开始计数,如-1表示列表的最后一个元素
LSET key index value

获取

  • 移除并且返回 key 对应的 list 的第一个元素
LPOP key
  • 移除并返回存于 key 的 list 的最后一个元素
RPOP key
  • 返回存储在 key 的列表里指定范围内的元素
  • start 和 end 偏移量都是基于0的下标
  • 偏移量也可以是负数,表示偏移量是从list尾部开始计数,如-1表示列表的最后一个元素
LRANGE key start stop

其它

  • 裁剪列表,改为原集合的一个子集
  • start 和 end 偏移量都是基于0的下标
  • 偏移量也可以是负数,表示偏移量是从list尾部开始计数,如-1表示列表的最后一个元素
LTRIM key start stop
  • 返回存储在 key 里的list的长度
LLEN key
  • 返回列表里索引对应的元素
LINDEX key index

set

  • 无序集合
  • 元素为string类型
  • 元素具有唯一性,不重复

命令

设置

  • 添加元素
SADD key member [member ...]

获取

  • 返回key集合所有的元素
SMEMBERS key
  • 返回集合元素个数
SCARD key

其它

  • 求多个集合的交集
SINTER key [key ...]
  • 求某集合与其它集合的差集
SDIFF key [key ...]
  • 求多个集合的合集
SUNION key [key ...]
  • 判断元素是否在集合中
SISMEMBER key member

zset

  • sorted set,有序集合
  • 元素为string类型
  • 元素具有唯一性,不重复
  • 每个元素都会关联一个double类型的score,表示权重,通过权重将元素从小到大排序
  • 元素的score可以相同

命令

设置

  • 添加
ZADD key score member [score member ...]

获取

  • 返回指定范围内的元素
ZRANGE key start stop
  • 返回元素个数
ZCARD key
  • 返回有序集key中,score值在min和max之间的成员
ZCOUNT key min max
  • 返回有序集key中,成员member的score值
ZSCORE key member

发布订阅

  • 发布者不是计划发送消息给特定的接收者(订阅者),而是发布的消息分到不同的频道,不需要知道什么样的订阅者订阅
  • 订阅者对一个或多个频道感兴趣,只需接收感兴趣的消息,不需要知道什么样的发布者发布的
  • 发布者和订阅者的解耦合可以带来更大的扩展性和更加动态的网络拓扑
  • 客户端发到频道的消息,将会被推送到所有订阅此频道的客户端
  • 客户端不需要主动去获取消息,只需要订阅频道,这个频道的内容就会被推送过来

消息的格式

  • 推送消息的格式包含三部分
  • part1:消息类型,包含三种类型如果第一部分的值为subscribe,则第二部分是频道,第三部分是现在订阅的频道的数量
    • subscribe,表示订阅成功
    • unsubscribe,表示取消订阅成功
    • message,表示其它终端发布消息
  • 如果第一部分的值为unsubscribe,则第二部分是频道,第三部分是现在订阅的频道的数量,如果为0则表示当前没有订阅任何频道,当在Pub/Sub以外状态,客户端可以发出任何redis命令
  • 如果第一部分的值为message,则第二部分是来源频道的名称,第三部分是消息的内容

命令

  • 订阅
SUBSCRIBE 频道名称 [频道名称 ...]
  • 取消订阅
  • 如果不写参数,表示取消所有订阅
UNSUBSCRIBE 频道名称 [频道名称 ...]
  • 发布
PUBLISH 频道 消息

主从配置

  • 一个master可以拥有多个slave,一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构
  • 比如,将ip为192.168.1.10的机器作为主服务器,将ip为192.168.1.11的机器作为从服务器
  • 设置主服务器的配置
bind 192.168.1.10
  • 设置从服务器的配置
  • 注意:在slaveof后面写主机ip,再写端口,而且端口必须写
bind 192.168.1.11
slaveof 192.168.1.10 6379
  • 在master和slave分别执行info命令,查看输出信息
  • 在master上写数据
set hello world
  • 在slave上读数据
get hello

Redis-数据操作的更多相关文章

  1. Jedis连接池对Redis数据操作

    [效果图] [前言] Redis是常用于缓存的非关系型数据库,感觉更像加强型的HashMap的用法,依靠Key和Value保存数据.官方推荐用Jedis来操作Redis数据库,使用和JDBC差不多,一 ...

  2. redis数据操作

    数据结构 redis是key-value的数据结构,每条数据都是一条字符串.注意:键的类型是字符串,并且不能重复. 值的类型分5种: 字符串string 哈希hash 列表list 集合set 有序集 ...

  3. Redis—数据操作

    redis是key-value的数据,所以每个数据都是一个键值对. 数据操作的全部命令,可以查看中文网站. 键的类型是字符串 值的类型分为五种: 字符串string 哈希hash 列表list 集合s ...

  4. redis数据操作笔记

    redis是key-value的数据结构,每条数据都是一个键值对键的类型是字符串 注意:键不能重复,值的类型分为五种:字符串string 哈希hash 列表list 集合set 有序集合zset 一. ...

  5. 《Redis 数据操作》

    一:字符串类型(string) - 应用场景  - 用于常规计数,常规的 key-value 存储. - 常用操作 常用操作 设置一个值为(字符串类型) SET key value 设置一个值并设置过 ...

  6. redis数据操作篇

    服务器端 服务器端的命令为redis-server 可以使⽤help查看帮助⽂档 redis-server --help 个人习惯 ps aux | grep redis 查看redis服务器进程su ...

  7. StackExchange.Redis帮助类解决方案RedisRepository封装(字符串类型数据操作)

    本文版权归博客园和作者本人共同所有,转载和爬虫请注明原文链接 http://www.cnblogs.com/tdws/tag/NoSql/ 目录 一.基础配置封装 二.String字符串类型数据操作封 ...

  8. 高级运维(六):源码安装Redis缓存服务、常用Redis数据库操作指令、配置Redis主从服务器

    一.源码安装Redis缓存服务 目标: 本案例要求先快速搭建好一台Redis服务器,并测试该缓存服务器: 1> 设置变量test,值为123 2> 查看变量test的值 3> 设置计 ...

  9. Redis 安装,配置以及数据操作

    Nosql介绍 Nosql:一类新出现的数据库(not only sql)的特点 不支持SQL语法 存储结构跟传统关系型数据库中那种关系表完全不同,nosql中存储的数据都是k-v形式 Nosql的世 ...

  10. redis常见数据操作

    redis中有5种常见的数据类型,针对这5种数据类型有着相应的数据操作. 1.String(键值对为String - String) set k1 v1 get k1 getset k1 v1 - h ...

随机推荐

  1. Zabbix自动发现与主动注册

    接上篇:Zabbix监控主动模式 网络自动发现 zabbix agent的配置文件/etc/zabbix/zabbix_agentd.conf 注释StartAgents=0 添加 HostnameI ...

  2. 【转】SignalR来做实时Web聊天

    本章和大家分享的内容是使用Signal R框架创建个简易的群聊功能,主要讲解如何在.Net的MVC中使用这个框架,由于这个项目有官方文档(当然全英文),后面也不打算写分享篇了,主要目的是让朋友们在需要 ...

  3. c# winform 应用程序根据条件阻止窗口关闭

    //添加窗口关闭事件委托 在窗口关闭事件中处理 private void TestForm_FormClosing(object sender, FormClosingEventArgs e) { s ...

  4. Oracle Schema Objects——Tables——TableStorage

    Oracle Schema Objects Table Storage Oracle数据库如何保存表数据? Oracle Database uses a data segment in a table ...

  5. 服务端使用Zookeeper注册服务地址,客户端从Zookeeper获取可用的服务地址。

    一个轻量级分布式RPC框架--NettyRpc - 阿凡卢 - 博客园 http://www.cnblogs.com/luxiaoxun/p/5272384.html 这个RPC框架使用的一些技术所解 ...

  6. window下cmd的宽度调整

    一直被cmd的宽度这么了好些年,刚才搜索了下,还真可以设置.标题栏右键属性,调整屏幕缓冲区宽度,只要足够长就不会换行了,然后调整窗口大小-宽度,不能超过屏幕缓冲区宽度,当小于屏幕缓冲区的时候,就会显示 ...

  7. JMeter场景运行(非GUI方式运行命令)

    JMeter场景运行方式可分为两种:  GUI方式运行,视窗运行,双击jmeter.bat启动运行即可以看到运行界面:  非GUI方式运行,在命令窗口中使用java –jar命名运行: 但不管是以 ...

  8. LightOJ1003---Drunk(拓扑排序判环)

    One of my friends is always drunk. So, sometimes I get a bit confused whether he is drunk or not. So ...

  9. 跟我学Makefile(一)

    1.首先,把源文件编译生成中间代码文件,Windows下.obj文件,unix下.o文件,即Object File.这个动作叫编译(compile) 把大量的Object File合并执行文件,叫做链 ...

  10. PHP 基础篇 - PHP 的 BC MATH 系列数学函数

    一.常见问题 用 PHP 做计算时经常会遇到精度带来的问题,下面来看两个常见的例子: 1. 运算比较 下面表达式输出的结果不是相等: <?php echo 2.01 - 0.01 == 2 ? ...