1.redis数据类型

a.字符串,使用场景:常规key-value缓存应用

set name lixiang
get name
append name 123 # 字符串追加
mset key value [key value ...] # 设置多个键值对
mset name1 zhangsan name2 lisi
mget name1 name2 # 获取多个键的值
strlen name1 # 返回字符串长度
(integer) 8
set age 24
incr age # 每次加1
(integer) 25
decr age # 每次减1
exists key [key ...] # 检测某个键是否存在
incrby age 20 # 指定增加量
del name1 # 删除某个键

b.hash,使用场景:存储部分变更的数据,如用户信息等

hash是一个string类型的field和value的映射表,hash特别适合用于存储对象
hset user1 name "Tom"
hset user1 age 25
hset user1 career "Programmer"
hget user1 name
hgetall user1 # 返回key的所有键值
hdel user1 name # 删除其中某个字段
hdelall user1 # 删除user1

c.list,Redis列表是简单的字符串列表

lpush list1 bmw benz toyota wuling  # 将一个或多个值插入到列表头部
lrange list1 0 3 # 返回指定的元素
rpush list1 biyadi # 将一个或多个值插入到列表尾部
rpop list1 # 删除列表末尾的元素
llen list1 # 返回列表长度
lrem list1 2 baozi1 # 删除前两个baozi1
lrem list1 -1 baozi1 # 删除最后一个baozi1
lrem list1 0 baozi1 # 删除所有baozi1
lindex list1 2 # lindex key index返回下标为index的元素
lset list1 2 TOYOTA # lset key index value
linsert list1 before benz dazhong # linsert key BEFORE|AFTER pivot value

生产者、消费者模型--用rpush生产,放到列表尾部,用lpop消费,从列表头部取出元素,跟队列是一样的,先进先出;栈:后进先出(电梯)、先进后出.

d.set

set是string类型的无序集合.注意集合和列表的区别:
集合中的元素是无序的,因此不能通过索引来操作元素;
集合中的元素不能有重复.
SADD numbers 1 3 5 # sadd key member [ member .... ]
smembers numbers # smembers key返回集合中的所有元素
srem numbers 5 # srem key member
sismember key member# 判断元素是否在集合中
scard key # 获得集合中元素的个数

e.sorted set有序集合对象

zadd 命令用来向有序集合中加入一个元素和该元素的分数,如果该元素已经存在,则会用新的分数替换原有的分数

zadd key score member [ score member ...... ]
ZADD price 8.5 apple 5.0 banana 6.0 cherry
zscore key member # 获得元素的分数
zrange key start stop [ withscores ] # 获得排名在某个范围的元素列表
zrevrange key start stop [ withscores ]
zrange price 0 -1

2.两种模型

a.生产者、消费者模型
b.发布订阅模型
# 两个不同的终端,分别连上redis
10.0.0.15:6379> publish mq1 "redis is a great cached technique"
(integer) 1 10.0.0.15:6379> subscribe mq1
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "mq1"
3) (integer) 1
1) "message"
2) "mq1"
3) "redis is a great cached technique"

3.事务

10.0.0.15:6379> zadd money 3000 lixiang 6000 oldboy
(integer) 2
10.0.0.15:6379> multi
OK
10.0.0.15:6379> zincrby money 1000 lixiang
QUEUED
10.0.0.15:6379> zincrby money -1000 oldboy
QUEUED
10.0.0.15:6379> exec
1) "4000"
2) "5000"
10.0.0.15:6379> zrange money 0 -1 withscores
multi:标记一个事务块的开始;
exec:执行所有事务块内的命令;
discard:取消事务,放弃执行事务块内的所有命令;
watch:监视一个(或多个)key,如果在事务执行之前这个(或这些)key被其他命令所改动,那么事务将被打断;
unwatch:取消watch命令对所有 key 的监视.
Redis的事务中,启用的是乐观锁,只负责监测key没有被改动.

4.内部命令

INFO [section]:获取Redis服务器的各种信息和统计数值;
CONFIG SET parameter value:修改redis配置参数,无需重启;
MONITOR:实时打印出Redis服务器接收到的命令,调试用;
DBSIZE:返回当前数据库的key的数量;
FLUSHALL:删除所有数据库的所有key;
FLUSHDB:删除当前数据库的所有key; CLUSTER SLOTS:获取集群节点的映射数组;
CLIENT LIST:获取连接到服务器的客户端连接列表;
ROLE:返回主从实例所属的角色;
SAVE:异步保存数据到硬盘;
SHUTDOWN [NOSAVE] [SAVE]:异步保存数据到硬盘,并关闭服务器;
SLAVEOF host port:将当前服务器转变为指定服务器的从属服务器(slave server);
SYNC:用于复制功能(replication)的内部命令
SLOWLOG subcommand [argument]:管理 redis 的慢日志
cat redis.conf
slowlog-log-slower-than 10000
slowlog-max-len 128

Redis常用命令整理:https://www.cnblogs.com/kevinws/p/6281395.html

Redis数据类型、两种模型、事务、内部命令的更多相关文章

  1. Redis的两种持久化方式-快照持久化和AOF持久化

    Redis为了内部数据的安全考虑,会把本身的数据以文件形式保存到硬盘中一份,在服务器重启之后会自动把硬盘的数据恢复到内存(redis)的里边,数据保存到硬盘的过程就称为"持久化"效 ...

  2. redis的两种安装方法

    原:https://www.cnblogs.com/caokai520/p/4409712.html C# Redis   概念 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦 ...

  3. Redis的五种数据结构的内部编码

    type命令实际返回的就是当前键的数据结构类型,它们分别是:string(字符串).hash(哈希). list(列表).set(集合).zset(有序集合),但这些只是Redis对外的数据结构. 实 ...

  4. Redis的两种持久化方式-快照持久化(RDB)和AOF持久化

    Redis为了内部数据的安全考虑,会把本身的数据以文件形式保存到硬盘中一份,在服务器重启之后会自动把硬盘的数据恢复到内存(redis)的里边,数据保存到硬盘的过程就称为“持久化”效果. redis有两 ...

  5. Redis系列之----Redis的两种持久化机制(RDB和AOF)

    Redis的两种持久化机制(RDB和AOF) 什么是持久化    Redis的数据是存储在内存中的,内存中的数据随着服务器的重启或者宕机便会不复存在,在生产环境,服务器宕机更是屡见不鲜,所以,我们希望 ...

  6. Redis的两种持久化机制

    Redis的两种持久化机制 1.持久化机制 client--->redis(内存)--->内存数据-数据持久化--->磁盘 两种方法 快照(Snapshot) AOF(Append ...

  7. Redis入门到高可用(四)—— Redis的五种数据结构的内部编码

    Redis的五种数据结构的内部编码

  8. Redis系列(二):Redis的5种数据结构及其常用命令

    上一篇博客,我们讲解了什么是Redis以及在Windows和Linux环境下安装Redis的方法, 没看过的同学可以点击以下链接查看: Redis系列(一):Redis简介及环境安装. 本篇博客我们来 ...

  9. 详细讲解 Redis 的两种安装部署方式

    Redis 是一款比较常用的 NoSQL 数据库,我们通常使用 Redis 来做缓存,这是一篇关于 Redis 安装的文章,所以不会涉及到 Redis 的高级特性和使用场景,Redis 能够兼容绝大部 ...

随机推荐

  1. 修改MySQL数据库字符集

      Preface       I've demonstrated how to change character set in Oracle database in my previous blog ...

  2. linux path环境变量基础

    系统环境变量与个人环境变量的配置文件 系统级别的配置文件:  /etc/profile :这个文件预设了几个重要的变量,例如PATH, USER, LOGNAME, MAIL, INPUTRC, HO ...

  3. 博客挪窝了 http://my.oschina.net/jrrx/blog

    1. 博客园很不错: 2. 由于各种原因,挪到了 http://my.oschina.net/jrrx/blog

  4. [转]Docker学习笔记之一,搭建一个JAVA Tomcat运行环境

    本文转自:http://www.blogjava.net/yongboy/archive/2013/12/12/407498.html 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 ...

  5. DPDK的代码规范

    每个公司都会有自己代码风格或者编程规范,都旨在防范编程语言的一些陷阱或者提高代码效率,还有就是保持一致编码风格来提高代码可读性,方便code review: 或者说代码的一种美学,比如python也就 ...

  6. 【Android】Android中期项目设计题目-界面设计小作业-提交截止时间2016.4.8

    评选三份作品,请发关于app运行界面截图的博客.

  7. over窗口函数进阶

    over窗口函数的其他灵活的用法.即,统计当前行的前N行及后N行数据.转自:https://blog.csdn.net/ck3207/article/details/84954511 先来看一下数据的 ...

  8. 思梦PHP-阿里大鱼手机验证码

    小伙伴是否做PC网站的时候,是否遇到过注册用户需要使用短信验证的功能呢?或者找回密码,以及验证用户的信息等等功能!今天思梦PHP就为大家带来ThinkPHP整合阿里大鱼短信验证的功能! 首先,我们要明 ...

  9. Mifare简介

    Mifare简介 MIFARE是NXP的知名品牌,是一个应用广泛的非接触式IC产品(13.56MHz非接触性辨识技术),一个典型的通信距离为10厘米,在全球有40多个不同的应用领域.有2.6亿个读写器 ...

  10. 用基于类的通用视图处理表单(Class-based generic views)

    处理表单通常包含3步: 初始化GET(空白的后者预填充的表单) POST非法数据(通常重新显示带有错误信息的表单) POST合法数据(提交数据并重定向) 为了将你从这些烦人的重复步骤中解救出来,Dja ...