什么是Redis
Redis是用C语言开发的一个开源的高性能键值对(Key-Value)数据库,官方提供测试数据, 50个并发执 行100000个请求,度的速度是110000次/s,写的速度是81000次/s,且Redis通过提供多种键值数据类型来适应 不同场景下的存储需求,目前为止Redis支持的键值数据类型如下:
1.字符串类型String
2.哈希类型hash
3.列表类型list
4.集合类型set
5.有序集合类型sortedset
redis的应用场景
缓存(数据查询、短链接、新闻内容、商品内容等等)
聊天室的在线好友列表
任务队列。(秒杀、抢购、12306等等)
应用排行榜
网站访问统计
数据过期处理(可以精确到毫秒)
分布式集群构架中的session分离
命令操作
1.redis的数据结构:
redis存储的是:key,value格式的数据,其中key都是字符串,value有5种不同
的数据结构
value的数据结构:
1.字符串类型string
2.哈希类型hash:map格式
3.列表类型list:linkedlist格式。支持重复元素
4.集合类型set:不允许重复元素
5.有序集合类型sortedset:不允许重复元素,且元素有顺序
2.字符串类型string
1.存储:set key value
set username zhangsan
2.获取:get key
get username -->"zhangsan"
3.删除:del key
del age -->(inteder) 1
3.哈希类型hash
1.存储:hset key field value
hset myhash username lisi -->(integer) 1
hset myhash password 123 -->(integer) 1
2.获取:
hget key field:获取指定的field对应的值
hget myhash username --> "lisi"
hgetall key:获取所有的field和value
hgetall myhash
1)"username"
2)"lisi"
3)"password"
4)"123"
3.删除:hdel key field
hdel myhash username -->(integer) 1
4.列表类型list:可以添加一个元素到列表的头部(左边)或者尾部(右边)
1.添加:
1.lpush key value:将元素加入列表左表
2.rpush key value:将元素加入列表右边
lpush mylist a --> (integer) 1
lpush mylist b --> (integer) 2
lpush mylist c --> (integer) 3
2.获取:
lrange key start end:范围获取
lrange mylist 0 -1
1)"b"
2)"a"
3)"c"
3.删除:
lpop key:删除列表最左边的元素,并将元素返回
rpop key:删除列表最右边的元素,并将元素返回
5.集合类型set:不允许重复元素
1.存储:sadd key value
sadd myset a --> (integer) 1
sadd myset a --> (integer) 0
2.获取:smembers key:获取set集合中所有元素
smembers myset
1)"a"
3.删除:srem key value:删除set集合中的某个元素
srem myset a --> (integer) 1
6.有序集合类型sortedset:不允许重复元素,且元素有顺序,每个元素都会关联一个double类型的分数
redis正是通过分数来为集合中的成员进行从小到大的排序
1.存储:zadd key score value
zadd mysort 60 zhangsan --> (integer) 1
zadd mysort 50 lisi --> (integer) 1
zadd mysort 80 wangwu --> (integer) 1
2.获取:zrange key start end [withscores]
zrange mysort 0 -1
1)"lisi"
2)"zhangsan"
3)"wangwu"
zrange mysort 0 -1 withscores
1)"zhangsan"
2)"60"
3)"wangwu"
4)"80"
5)"lisi"
6)"500"
3.删除:zrem key value
zrem mysort lisi --> (integer) 1
7.通用命令
1.keys * :查询所有的键
2.type key:获取键对应的value的类型
3.del key:删除指定的key value
总结:
redis是一个内存数据库,当redis服务器重启,或者电脑重启,数据会丢失,我们可以将redis内存中的数据持久化保存到硬盘的文件中
现实运用中我们都是关系型数据库,非关系型数据库同时使用的,这样可以形成互补的作用。