一,字符串
-
set key value 设置key对应的值为string类型的value
-
get key 获取key对应的value值,如果key不存在返回nil
-
KEYS pattern 查找所有符合给定模式pattern(正则表达式)的 key
-
EXISTS key 返回key是否存在,如果存在返回1,不存在返回0
-
DEL key 删除一个key值
-
TYPE key 返回key所存储的value的数据结构类型,它可以返回string, list, set, zset 和 hash等不同的类型。
-
SETNX key value 将key设置值为value,如果key不存在,这种情况下等同SET命令。 当key存在时,什么也不做。nx是not exist的意思。 (主要用于检测是否有键已经存在,在不确定的时候依旧要set)
-
SETEX key seconds value 设置key对应字符串value,并且设置key在给定的seconds时间之后超时过期。举例:setex lxz 5 jjj (多用于设置推荐之类的)限时滚动
-
SETRANGE key offset value 覆盖key对应的string的一部分,从指定的offset处开始,覆盖value的长度。如果offset比当前key对应string还要长,那这个string后面就补0以达到offset。举例set email 12345@qq.com 之后下一个语句: setrange email 6 gmail.com 导致最终的结果:eamil——12345@gmail.com, 完全覆盖第六个字符后的内容
-
INCR key 对存储在指定key的数值执行原子的加1操作。
DECR key 对key对应的数字做减1操作。 -
MSET key value 批量存键值对
-
MGET key[key …] 批量取键值
二 , 哈希
redis哈希是键值对的集合,它是是字符串字段和字符串值之间的映射,所以它们用来表示对象.
- HSET key field value 设置 key 指定的哈希集中指定字段的值。举例:hset myhash jian top1 这个代表了哈希
- HGET key field 返回 key 指定的哈希集中该字段所关联的值。
- HKEYS key 返回 key 指定的哈希集中所有字段的名字。
- HDEL key field [field …] 从 key 指定的哈希集中移除指定的域。
- HLEN key 返回 key 指定的哈希集包含的字段的数量。
- HMSET key field value [field value …] 设置 key 指定的哈希集中指定字段的值。
- HMGET key field [field …] 返回 key 指定的哈希集中指定字段的值。
- **HGETALL key 返回 key 指定的哈希集中所有的字段和值。**返回的是上面key下面value
三,链表list双端链表,可以作为栈(左进左出,或者 右进右出),作为队列:( 左进右出或者,右进左出).用于消息排行之类的
- LPUSH key value [value …] 将所有指定的值插入到存于 key 的列表的头部。
- LPOP key 移除并且返回 key 对应的 list 的第一个元素。
- LRANGE key start stop 返回存储在 key 的列表里指定范围内的元素。 通常 lrange key 0 -1
- LTRIM key start stop 修剪(trim)一个已存在的 list,这样 list 就会只包含指定范围的指定元素。是将list[只留下从left开始的 x —y 的成员
- **上面的都是作为从左端操作的!**每一个都有对应的r操作
四,Set—无序集合 集合指一堆不重复值的组合, 应用于 如: 找两个集合的交集并集之类的.(共同好友)
- SADD key member [member …] 添加一个或多个指定的member元素到集合的 key中
- SMEMBERS key 返回key集合所有的元素。
- SREM key member [member …] 在key集合中移除指定的元素。
- SINTER key [key …] 返回指定所有的集合的成员的交集。
- SUNIONSTORE destination key [key …] 返回给定的多个集合的并集中的所有成员,而是将结果存储在destination集合中。 sunionstore dest key1 key2 两个集合的并集的结果存在了dest
五,Sorted Set—有序集合 与set不同之处在根据有权重进行存储
- ZADD key score member [score member …] 将所有指定成员添加到键为key有序集合(sorted set)里面。 添加时可以指定多个分数/成员(score/member)对。如:zadd mysortset 1 lj 2 lxz 3 ll 表示:键中的集合元素权重1 2 3 ,对应三个成员
- ZRANGE key start stop [WITHSCORES] 返回有序集key中,指定区间内的成员。其中成员的位置按score值递减(从小到大)来排列。开始0,结束 -1 表返回所有
- ZREVRANGE key start stop [WITHSCORES] 表示逆序输出
六, Pub/Sub—订阅/发布
发件人(在 Redis 中的术语称为发布者)发送邮件,而接收器(订户)接收它们。信息传输的链路称为通道。Redis 一个客户端可以订阅任意数量的通道。
你可以设定对某一个key 值进行消息发布及消息订阅,当一个 key 值上进行了消息发布后,所有订阅它的客户端都会收到相应的消息。这一功能最明显的用法就是用作实时消息系统,比如普通的即时聊天、群聊等功能
- SUBSCRIBE channel [channel …] 订阅给指定频道的信息。一旦客户端进入订阅状态,客户端就只可接受订阅相关的命令。
- PUBLISH channel message 将信息 message 发送到指定的频道 channel。
一个客户端掌握,其他客户端来对某主题来进行发布,之后订阅频道的那一个就能够收到.
七, 事务
MULTI 标记一个事务块的开始。 随后的指令将在执行EXEC时作为一个原子执行。
EXEC 执行事务中所有在排队等待的指令并将链接状态恢复到正常。
八, 持久化
客户端敲save命令,即可创建当前 redis 数据库的备份,如果成功,自动在服务器启动所在目录生成dump.rdb文件.RDB持久化
在dump.rdb文件所在目录下,启动redis服务器,服务器自动会加载当前目录下的dump.rdb文件:
先持久化: save 查询rdb的目录命令: config get dir
而持久化的条件在redis-conf 中为 save 900 1 代表900秒钟内有一次改动就rdb
并且,redis 不能直接连接服务器,所以要通过hredis来作为中间桥梁.