Redis的使用

Redis

    • Redis字符串的操作
    • Redis哈希表的使用
    • Redis列表的使用
    • Redis集合的使用
    • Redis有序集合的使用

Redis将 数据放在内存中,因此读写性能是非常惊人的。与此同时,Redis也提供了 持久化机制,能够将内存中的数据保存到硬盘上,在发生意外状况时数据也不会丢掉

redis文档
Redis 教程

Redis字符串的操作

127.0.0.1:6379> set x 100
OK
127.0.0.1:6379> get x
"100"
127.0.0.1:6379> set x 23
OK
127.0.0.1:6379> get x
"23"
127.0.0.1:6379> set y 90 ex 10
OK
127.0.0.1:6379> get y
"90"
127.0.0.1:6379> get y
(nil)
127.0.0.1:6379> set y hello ex 20
OK
127.0.0.1:6379> get y
"hello"
127.0.0.1:6379> ttl y   #查看还有多长时间过期
(integer) 12
127.0.0.1:6379> ttl y
(integer) 8
127.0.0.1:6379> ttl y
(integer) 2
127.0.0.1:6379> get y
(nil)
127.0.0.1:6379> ttl x
(integer) -1            #-1表示永不过期
127.0.0.1:6379> mset p 20 q 30 t 50 m 60   #设置多个值
OK
127.0.0.1:6379> mget p t m q    #获取多个值
1) "20"
2) "50"
3) "60"
4) "30"
127.0.0.1:6379> strlen name   #获取长度
(integer) 4
127.0.0.1:6379> incr q   # 自增加1
(integer) 31 
127.0.0.1:6379> incrby p 18  #为键 key 储存的数字值加上增量 increment 
(integer) 38
127.0.0.1:6379> get p
"38"
127.0.0.1:6379> decr q   #减1
(integer) 30

Redis哈希表的使用

127.0.0.1:6379> hset dog name dahaung color yellow
(integer) 2
127.0.0.1:6379> hset dog age 3 gender female
(integer) 2

"""
相当于字典套字典
"dog":{
	"name":"dahuang",
	"color":"yellow",
	"age":3,
	"gender":"female"
}
"""

127.0.0.1:6379> hget dog name
"dahaung"
127.0.0.1:6379> hget dog age
"3"
127.0.0.1:6379> hget dog color
"yellow"
127.0.0.1:6379> hexists dog name   #dog是否有name属性,结果为1代表有此属性
(integer) 1
127.0.0.1:6379> hexists dog weight   #dog是否有weight属性,结果为0代表没有此属性
(integer) 0    
127.0.0.1:6379> hdel dog age gender  #删除属性
(integer) 2
127.0.0.1:6379> hget dog age
(nil)
127.0.0.1:6379> hlen dog  #得到dog有几个属性
(integer) 2
127.0.0.1:6379> hstrlen dog name   #name属性的长度
(integer) 7
127.0.0.1:6379> hkeys dog   #得到所有的key
1) "name"
2) "color" 
127.0.0.1:6379> hvals dog  #得到所有的值
1) "dahaung"
2) "yellow"
127.0.0.1:6379> hgetall dog
1) "name"
2) "dahaung"
3) "color"
4) "yellow"

Redis列表的使用

redis里的列表可以实现类似于队列和栈的结构

"""
队列:先进先出 FIFO
栈:后进先出   last in first out
"""
存数据
127.0.0.1:6379> lpush names zhangsan lisi wangwu #left push,往左边放数据,先放zhangsan ,再往左边放lisi,再往左边放wangwu,所欲拿出来的数据是  wangwu lisi zhangsan
(integer) 3
或取数据
127.0.0.1:6379> lrange names 0 -1
1) "wangwu"
2) "lisi"
3) "zhangsan"

127.0.0.1:6379> rpush names jack jerry 
(integer) 5
127.0.0.1:6379> lrange names 0 -1
1) "wangwu"
2) "lisi"
3) "zhangsan"
4) "jack"
5) "jerry"

127.0.0.1:6379> lpop names  #删除数据
"wangwu"
127.0.0.1:6379> lrange names 0 -1
1) "lisi"
2) "zhangsan"
3) "jack"
4) "jerry"
127.0.0.1:6379> lset names 2 rose #把下标为2的改为rose
OK
127.0.0.1:6379> lrange names  0 -1
1) "lisi"
2) "zhangsan"
3) "rose"
4) "jerry"
127.0.0.1:6379> llen names
(integer) 4
127.0.0.1:6379> lindex names 3
"jerry"

Redis集合的使用

127.0.0.1:6379> sadd wzry member zs li dsb kym hxy yx 
(integer) 7
127.0.0.1:6379> sadd jdqs zhangsan wangwu lisi 
(integer) 3
127.0.0.1:6379> sismember wzry lisi
(integer) 0
127.0.0.1:6379> sismember wzry kym #kym是否是wzry里的成员,1为是,0为不是
(integer) 1
127.0.0.1:6379> srandmember wzry 3  #随机取3个
1) "zs"
2) "dsb"
3) "member"
127.0.0.1:6379> smembers jdqs  #拿到jdqs里所有成员
1) "lisi"
2) "wangwu"
3) "zhangsan"
127.0.0.1:6379> sdiff wzry jdqs
1) "yx"
2) "li"
3) "zs"
4) "kym"
5) "hxy"
6) "dsb"
7) "member"
127.0.0.1:6379> sunion wzry jdqs   #合并去重
 1) "zs"
 2) "lisi"
 3) "kym"
 4) "hxy"
 5) "dsb"
 6) "member"
 7) "yx"
 8) "li"
 9) "zhangsan"
10) "wangwu"
127.0.0.1:6379> sinter wzry jdqs
(empty array)

Redis有序集合的使用

127.0.0.1:6379> zadd rank 50 wanglei 30 huangbingkun 80 kangyiming 90 lisi 70 wangwu
(integer) 5
127.0.0.1:6379> zrange rank 0 -1
1) "huangbingkun"
2) "wanglei"
3) "wangwu"
4) "kangyiming"
5) "lisi"
127.0.0.1:6379> zrank rank kangyiming  #排名
(integer) 3
127.0.0.1:6379> zrevrange rank 0 -1  #倒序
1) "lisi"
2) "kangyiming"
3) "wangwu"
4) "wanglei"
5) "huangbingkun"
127.0.0.1:6379> zrevrange rank 0 -1 withscores
 1) "lisi"
 2) "90"
 3) "kangyiming"
 4) "80"
 5) "wangwu"
 6) "70"
 7) "wanglei"
 8) "50"
 9) "huangbingkun"
10) "30"
127.0.0.1:6379> zincrby rank 5 lisi  # 给lisi加5分
"95"

你可能感兴趣的:(数据库,redis,数据库,缓存)