-
set key value
get key
getset key value
del key
append value 字符串追加
查看全部 -
flushall:清空数据库
查看全部 -
redis持久化:
RDB方式,默认的方式,无需配置。指定将内存中的数据写入到磁盘中的频率
AOF方式,以日志的形式存储redis数据库中的数据,当redis数据库重启时将读取日志中的数据
可以配置为不进行持久化,redis就当一个缓冲使用。可以同时使用RDB和AOF
查看全部 -
一个redis对象由16个数据库,下标从0开始,默认如果未选择数据库,默认操作的是下标为0的数据库。相较于关系型数据库,redis中如果某个命令执行失败,剩下的命令将继续执行
select index:选中下标为indexde数据库,即访问下标为index的数据库
move key index:将当前数据库中的key移动到下标为index的数据库中
multi:开启事物
exec:提交事物
discard:回滚事物
查看全部 -
keys * :获取所有的key
del key1 key2 ...:删除相应的key
get key:获取相应key的value
rename oldname newname:重命名key
expire key time:设置key的保存时间为time单位毫秒
ttl key:查看key剩余超时时间,如果key没有设置超时时间将会返回-1
type key:获取key的类型
查看全部 -
Sorted-set:存储的元素有一个分数,不同的元素分数可能相同
添加元素
zadd sortname score1 value1 score2 value2...:向sortname中添加元素value及元素的分数score,如果value存在,但是value对应的score不一样则进行替换
获得元素
zscore sortname value:返回sortname中value对应的score
zcard sortname:返回sortname中的value个数
删除元素
zrem sortname value1 value2:删除sortname中对应value的元素及分数
zremrangebyrank sortname start end:删除下标在start至end范围内的元素value及value对应的score
zremrangebyscore sortname start end:删除score在start至end范围内的元素value及value对应的score
范围查询
zrange sortname start end:返回sortname中下标在start至end范围内的value,返回value的顺序以value的score进行升序排序
zrange sortname start end withscore:返回sortname中下标在start至end范围内的value及value对应的分数,以value对应的score进行升序排序
zrevrange sortname start end withscores:返回sortname中下标在start至end范围内的value及value对应的score,以value的score进行降序排序
扩展命令
zrangebyscore setname start end withscores:返回成绩在start至end之间的value及value对应的成绩
zrangebyscore setname start end withscores limit num1 num2:返回setname中score在start至end之间的num2-num1个的value及value的score
zincyby setname value setkey:对setname的setkey的score加上value
zcount setname start end:返回setname中score在start至end之间的个数
查看全部 -
存储Set:
和List类型不同的是:Set集合中不允许出现重复的元素,List中元素可以重复
Set中可包含的最大元素数量与List一样
存储set常用命令:
添加/删除元素
sadd setname value1 value2 value3...:向setname中添加元素
srem setname value1 value2:删除setname中的value1、value2
获取集合中的元素
smembers setname:返回setname中的所有value
sismenber setname value:判断setname中是否包含value,存在返回1不存在返回0
集合中的差集运算
sdiff setname1 setname2:返回setname1与setname2的差集,返回结果与setname的书写顺序有关
集合中的交集运算
sinter setname1 setname2:获取setname1与setname2中的交集
集合中的并集运算
sunion setname1 setname2:获取setname1与setname2的并集,重复的元素保留一个
扩展命令
scard setname:返回setname中的值的个数
srandmember setname:随机返回setname中一个元素
sdiffstore setname setname1 setname2:将setname1与setname2的差集元素存储到setname中
sinterstore setname setname1 setname2:将setname1与setname2的交集存储到setname中
sunionstore setname setname1 setname2:将setname1与setname2的并集去重存储到setname中
查看全部 -
存储list:
ArrayList使用数组方式
LinkedList使用双向链接方式
双向链表中增加数据
双向链表中删除数据
存储list常用命令:
两端添加
lpush listname value1 value2 value3:如果listname不存在则创建listname并从左侧添加,先添加的元素靠后,下标从0开始。如果listname存在则直接从左侧添加
rpush listname value1 value2 value3:从右侧添加,先添加的元素靠前,下标从0开始
查看列表
lrange listname start end:左边查看指定范围内的listname的元素,下标从0开始,如果end为-1代表是最后一个元素
两端弹出
lpop listname:左边弹出listname中的第一个元素。如果listname不存在元素则返回nil,一旦做了弹出操作,被弹出的元素将在listname中消失
rpop listname:尾部(右部)弹出,与lpop同理
获取列表元素个数
llen listname:获取listname中元素的个数,如果listname不存在则返回0
扩展命令
lpushx listname value1 value2...:如果listname存在则进行添加操作,如果listname不存在则添加失败返回0
rpushx listname value1 value2...:与lpushx同理
lrem listname count value:如果count大于0,则从左往右删除count个value;如果count小于0,则从右向左删除count个value;如果count等于0则表示删除所有的value
lset listname index value:将listname中下标为index的值修改为value
linsert listname before listvalue value:在listname中的listvalue前插入一个value
linsert listname after listvalue value:在listname中的listvalue之后插入一个value
rpoplpush listname1 listname2:将listname1中右边的第一个元素进行弹出然后向listname2的左侧进行添加弹出的元素
查看全部 -
存储hash:类似于hashMap
hset hashname key value:向hashname中存储一个键值对key-value
hset hashname key1 value1 key2 value2...:一次向hashname中存储对个键值对
hget hashname key:获取hashname中key的值
hmget hashname key1 key2...:一次获取hashname中多个key的值
hgetall hashname:获取hashname中所有的key和value
hdel hashname key1 key2:删除hashname中key的值
del hashname:删除hashname
hincryby hashname key value:给hashname中的key的值加上value的值,同理key的值应为int数字类型
hexists hashname key:判断hashname中是否有key,存在返回1,不存在返回0
hlen hashname:返回hashname中key的个数
hkeys hashname:返回hashname中的所有key
hvals hashname:返回hashname中所有的value
查看全部 -
set key value
get key
getset key value:先获取key的value,然后再更改key的value
incry key:key的类型必须是int数字类型,如果是字符串将报错。key如果存在,将对key进行加1,如果key不存在,系统自动先创建key,并默认为0,然后进行加1进行存储
decr key:与incr相反,进行减1
incrby key value:将key进行加value的值,与incr类似,指定累加的值
decrby key value:与incrby key value相反,即相减
append key value:在key的value值后面拼接value,如果key不存在,系统会自动创建key,value为key的值
查看全部 -
Redis的数据类型:
字符串String
字符串列表list
有序字符串集合sorted set
哈希hash
字符串集合set
查看全部 -
Redis的数据结构
五种数据类型:
1字符串(String) 2字符串列表(list)
3有序字符串集合(sorted set)
4哈希(hash) 5字符串集合(set)
注意点:
1key定义不要太长,不要超过1024个字节(消耗内存,降低查询效率)
2不要太短,降低key的可读性。
3统一的命名规范
设置:set company baidu
获取:get company
先获取再设置:getset company tengxun 输出baidu
删除:del company
增加:incr num 如果数据库没这个键,创建一个默认为0,然后加1
每次加1
减少:decr num 和增加一样的机制,每次减一
incrby num 5 num+5
decrby num 5 num-5
append num 5 在num5拼接5,如果num5是30 这时候是35 还是数值类型,如果拼接qwe,这时候是30qwe是字符串类型
返回的是数值/字符串的长度
查看全部 -
创建:set name wfd
获取:get name
删除:del name
查看所有的键:keys *
查看全部 -
redis读的次数每秒钟11万次
写的速度达到每秒8.1万次
应用场景:缓存,任务队列,网站访问统计,应用排行榜。分布式集群架构中的session分离。
查看全部 -
NoSQL===Not Only SQL
非关系型数据库
关系型数据库在每秒上万次的查询的时候还勉强顶得住,但是面对上万次的写入的时候,就不行了。(高并发读写)
mongo,redis就属于nosql的产品。
NoSQL数据库的四大分类:
1键值(key-value)存储
2列存储
3文档数据库
4图形数据库
Nosql的特点,
数据之间是没有关系的(易扩展)
不需要对数据建立字段
非常高的性能
高可用
查看全部
举报