Redis

Redis是一个key-value的Nosql数据库,先存在内存中,会根据一定的策略持久化到磁盘,即使断电也不会丢失数据,支持的数据类型比较多。主要用来做缓存数据库的数据和web集群时当做中央缓存存放seesion。

Redis中文文档点击跳转

Redis默认有16个内置库

进入Redis 

    redis-cli   不支持中文

    redis-cli --raw  支持中文

select n   n指的是0-15的数字,默认使用的是0号库

keys *    查看当前库里所有的key

redis五大数据类型:string、list、hash、set、zset

string类型 

一个key对应一个value

添加(修改)

结构:set key value  添加一个key value

添加一个key为name,value为yangmi

set name yangmi

结构:mset key value key value...       添加多个key value

如果key存在,则进行覆盖;如果key不存在,则添加

添加一个key为age,value为18;一个key为addr,value为huizhou:

mset age 18 addr huizhou

查询

查询所有key

key *

查询一个key

结构:get key   

查询key为name的值

get name

查询多个

结构:mget key key key...  

查询key为 name 、age、 addr的值:

mget name age addr

删除key

结构:del key   

del addr

追加数据

结构:append key value

append addr sichuan

自增     

结构:incr key  对数量加1,前提必须是数字

对key为age的value加1:

incr age

自减

结构:decr key  对数据减1

对key为age的value减1:    

decr age

加减对应的数值

incrby key n    对数据加n

decrby key n   对数据减n

list类型

一个key对应一个字符串列表

{key:[value,value,value...]}

添加

向右(后)添加数据

结构:rpush key value...  

向list1后面添加1 2 3 4 5的值:

rpush list1 1 2 3 4 5

向左(前)添加数据

结构:lpush key value ...  

向list1前面添加2 33 2的值:

lpush list1 2 33 2

查询

结构:lrange key start stop  范围查询

查询列表list1从0到-1(全部)的值:

lrange list1 0 -1

查询列表list1索引为0到2的值(包含2):

lrange list1 0 2

指定查询

结构:lindex key index  根据index查询

查询list1索引为0的值:

lindex list1 0

修改

结构:lset key index value

将list1索引为0的元素修改为55:

lset list1 0 55

删除

删除最右侧的第一个数据

结构:rpop key

删除list1最右(后)一个元素:

rpop list1

删除最左侧的第一个数据

结构:lpop key

lpop list1

指定删除

结构:lrem key count value   count是次数的意思,如果写0就是删除全部

删除list1为2的所有元素:(待验证:当数值超过指定删除次数count时,是从上还是下删除)

lrem list1 0 2

删除当前列表

del key  删除key

del list1

hash类型 

一个key对应一个键值对集合

结构:{key:{field:value,field:value....}} 一个field 域对应一个value值

应用场景:存储对象,string类型也可以实现存对象,对这个对象进行json序列化,然后取的时候再进行反序列化。但是,每次修改的时候只能整体修改,不能单个修改某个属性,且必须有实体类型的支撑。序列化和反序列化也需要消耗服务器性能。

添加(修改)

结构:hset key field value

添加一个名为hash1的key,域为height,值165:

hset hash1 height 165

结构:hmset key field value field value ...  添加多个

hmset hash1 weight 90 name yangmi

    field存在,则替换value

    field不存在,则添加value

查询

结构:hget key field  根据field去查询

查询一个key为hash1,域为height的值:

hget hashi1 height

结构:hmget key field field ...  查询多个

查询一个key为hash1,域为weight和name的值:

hmset hashi1 weight name

查看field

结构:hkeys key

查看key为hash1的所有域:

hkeys hash1

查看所有的value

结构:hvals key

查看key为hash1的所有值:

hvals hashi1

查看所有field和value

结构:hgetall key

hgetall hash1

查看key当中有多少对数据

结构:hlen key

hlen hash1

查看key的类型

结构:type key   所有类型通用

type hash1

删除key

结构:del key

删除field单条、多条数据

结构:hdel key field field ...

hdel hash1 name

set类型

一个key对应一个无序集合

集合特性:无序性,唯一性

{key:{member1、member2、member3...}}

应用场景:抽奖

添加

结构:sadd key member...

创建一个set类型的key名为set1,member为11 22 33 44:

sadd set1 11 22 33 44

查询

结构:smembers key

查询名为set1的key的成员:

smembers set1

删除

随机删除

结构:key count  随机删除count个member

随机删除2个成员

spop set1 2

指定删除
结构:srem key member ...  

srem set1 11 44

交集

结构:sinter key key key ...

返回两个key的交集(共有的)

sadd set1 11 22 33 44
sadd set2 22 33 55 66

sinter set1 set2   #返回22 33

并集

结构:sunion key key ...

合并两个key:

sunion set1 set2

差集

结构:sdiff key key ...

返回set1有,set2没有的成员:

sdiff set1 set2

移动member
结构:smove key1 key2 member

把set1当中的11移动到set2当中set1就不存在11

smove set1 set2 11

判断member在不在key当中  

结构:sismember key member 包含返回1,反之返回0

sismember set1 22

zset类型

zset 有序集合,一个key对应一个有序集合

zset特性:唯一性

{key:{score member,score member...}} score数字、member任意类型

应用场景:积分榜、成绩榜单等

添加

结构:zadd key score member score member ...

创建一个key名为zset1:100分杨幂;80分杨紫;90分杨洋

zadd zset1 100 yangmi 80 yangzi 90 yangdi

查询

结构:zrange key start stop   通过索引查看member

查询zset1 索引0到-1的成员:返回(从小到大排序后的结果):杨紫 杨洋 杨幂

zrange zset1 0 -1

结构:zrangebyscore key min max   通过score查看min max之间的member

通过最小最大分数范围查询成员:返回: 杨紫 杨洋

zrangebyscore zset1 80 90

结构:zscore key member  通过member查找对应的score

返回 100

zscore zset1 yangmi

结构:zcount key min max  通过score统计min max之间有多少个member

查找szet1 80到90分之间的数量:返回2

zcount szet1 80 90

结构:zcard key  查看key当中有多少个member

返回3成员

zcard zset1

删除

结构:zrem key member ...  删除指定member

zrem zset1 yangmi

结构:zremrangebyrank key start stop  删除索引对应的member

创建一个zset2的key,删除0到2的三个成员(包含2):

zadd zset2 11 aa 22 bb 33 cc 44 dd 55 ee 66 ff 77 gg 

zremrangebyrank zset2 0 2

结构:zremrangebyscore key min max  删除score min max 之间的member

删除从40到68分之间的成员:(待验证是否包含40和68)

zremrangebyscore zset2 40 68

全局操作

查看所有key

keys *

删除key

结构:del key

del hash1

是否存在

结构:exists key  不存在0,存在就是1

exists hash1

改名key

结构:rename old_name new_name

查看数据类型

结构:type key

type hash1

设置过期时间 (撤回消息)

结构:expire key seconds  设置key在seconds秒后过期

设置60秒过期:

expire hash1 60

查看过期时间

结构:ttl key     返回-1永久,-2过期

撤回过期时间

结构:persist key 

persist hash1

订阅

结构:subscribe channel(频道)

指定一个10086频道

subscribe 10086   

发布

结构:publish channel message(发布的内容)

10086频道发布一条 i like you信息:

publish 10086 i like you

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值