使用入门
- 获得一个符合匹配规则的键名列表
keys pattern [? / * /[]]
keys mic:hobby
- 判断一个键是否存在 , EXISTS key
- type key 去获得这个key的数据结构类型
各种数据结构的使用
字符类型
一个字符类型的key默认存储的最大容量是512M
赋值和取值
SET key value
GET key
递增数字
incr key
错误的演示
int value= get key;
value =value +1;
set key value;
key的设计
对象类型:对象id:对象属性:对象子属性
建议对key进行分类,同步在wiki统一管理
短信重发机制:sms:limit:mobile 138。。。。。 expire
incrby key increment 递增指定的整数
decr key 原子递减
append key value 向指定的key追加字符串
strlen key 获得key对应的value的长度
mget key key.. 同时获得多个key的value
mset key value key value key value …
setnx :设置唯一键
列表类型
list, 可以存储一个有序的字符串列表
LPUSH/RPUSH: 从左边或者右边push数据
LPUSH/RPUSH key value value …
{17 20 19 18 16}
LPOP/RPOP : 取数据、
因为lpop从左取数据,无论从左取还是右取都是一次顺序的取,因此应用场景:可以用来做分布式消息队列
llen num 获得列表的长度
lrange key start stop ;查看key里面的值 索引可以是负数, -1表示最右边的第一个元素
lrem key count value :删除key中的值
lset key index value :设置key中的值
散列类型
hash key value 不支持数据类型的嵌套
比较适合存储对象
person
age 18
sex 男
name mic
..
hset key field value
hget key filed
hmset key filed value [filed value …] 一次性设置多个值
hmget key field field … 一次性获得多个值
hgetall key 获得hash的所有信息,包括key和value
hexists key field 判断字段是否存在。 存在返回1. 不存在返回0
hincryby :原子递增
hsetnx :如果存在,则不操作返回0,如果不存在返回1并设置值
hdel key field [field …] 删除一个或者多个字段
集合类型
set 跟list 不一样的点。 集合类型不能存在重复的数据。而且是无序的
sadd key member [member ...] 增加数据; 如果value已经存在,则会忽略存在的值,并且返回成功加入的元素的数量
srem key member 删除元素
smembers key 获得所有数据
sdiff key key … 对多个集合执行差集运算 sdiff mic ff :指 mic 减去ff中相同的,得到mic中不同的值
sunion 对多个集合执行并集操作, 同时存在在两个集合里的所有值
有序集合
zadd key score member :score 指key的优先级
zrange key start stop [withscores] 去获得元素。 withscores是可以获得元素的分数
如果两个元素的score是相同的话,那么根据(0<9<A<Z<a<z) 方式从小到大
网站访问的前10名。
redis的事务处理
MULTI 去开启事务
EXEC 去执行事务
事务成功的:
事务不回滚:
事务有可能不会回滚,在执行中才能知道的问题,不会导致其他已经执行的回滚。
布订阅
publish channel message
subscribe channel [ …]
1.发布消息队列为queue1
2.在另外一台上订阅消息
3.在消息队列中发布消息
4.在订阅者中可以接受到消息