redis基础命令

1.redis定义
百度百科上给redis的定义是:一个开源的ANSI C语言编写、遵守BSD协议、支持网络、基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
有些晦涩,说简单点就是它是一个缓存工具,和别的缓存工具比如memcached的一个比较大的区别在于,redis可以把数据持久化到磁盘,重启的时候可以再次加载进行使用(dump.rdb文件)。而且它不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

2.redis通常被称为数据结构服务器,他的值(value)可以是String、Map、list、sets、sorted sets
下面是几个简单的例子:冒号左边是命令格式,右边是demo

字符串(String):
    set key value:    set name "string"
    get key:             get name
哈希(Map):
    hmset key field value[filed value...]    : hmset myhash field1 "hash1" field2 "hash2"       
    hget key field   : hget myhash field1
列表(list):
    lpush key value[value] : lpush list a b c ,往key为list的列表中插入了三条数据
    lrange key start stop : lrange list 0 9,查看key为list的列表中的前十条数据
集合(sets):
    sadd key member:sadd runoob redis  添加redis元素到 key为runoob 的 set 集合中,成功返回1,如果元素已经在集合中返回 0,如果 key 对应的 set 不存在则返回错误。
    smembers key: smembers runoob    查看key为runoob下的set集合中所有元素
有序集合(sorted sets):
    zadd key score member: zset ex 0 redis;    添加分数为0的member到key为ex的有序集合中
    zrangebyscore key min max: zrangebyscore ex 0 2000 :将key为ex的有序集合中前2000个数据从小到大打出来(默认)

有时候我们需要对key做操作,也有一些针对key的命令(command key):
例:del myset ,删除key为myset的key,exists myset,查询myset是否存在,type myset,查看myset的值类型,查看所有key:keys * 、删除所有key:flushdb…
以上只是一些基础比较常用的命令,其他需要的时候搜索或者查文档即可。

3.redis消息发布订阅
redis的发布订阅是一种消息通信模式。当新消息通过publish发送给频道时,所有订阅了这个频道的客户端都会收到消息
订阅频道:subscribe channelName : subscribe redisChat 订阅名为redisChat的频道
往频道推送消息:publish channelName message : publish redisChat “message”,往名为redisChat的频道推送一条内容为“message”的消息,所有订阅了这个频道的客户端将同步收到这个消息。

4.redis数据备份和恢复
save命令,会把数据持久化到redis安装目录下的dump.rdb文件里面,这个文件默认压缩过,打开会乱码。dump.rdb文件由redis通过快照自动生成,redis在启动的时候会加载这个文件,除了快照,也可以通过aof持久化。
bgsave命令:在后台执行save

5.redis事务:redis可一次执行多个命令,且遵从以下保证:
a.批量操作在发送exec命令前被放入队列缓存
b.收到exec命令后进入事务执行,事务中任意命令执行失败,其余命令继续执行,不回滚
c.在事务执行过程,其他客户端提交的命令不会插入到事务执行命令序列中。
简单来说,redis事务即批量执行命令,在exec命令前把所有命令缓存起来,等到exec命令再批量执行,单个redis命令执行是原子性的,但是redis事务并不是原子性的,可以把它理解为是一个打包的批量执行脚本,但是批量指令并非原子化的操作,中间某条指令的失败不会导致前面已做指令的回滚,也不会造成后续的指令不做

redis 127.0.0.1:6379>MULTI
OK
redis 127.0.0.1:6379>set demo1 “this is a demo”
QUEUED
redis 127.0.0.1:6379> sadd demo2 "a" "b" "c"
QUEUED
redis 127.0.0.1:6379>EXEC
1)OK
2)“this is a demo”
3)(integer) 3
4)1)"a"
  2)"b"
  3)"c"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值