什么是NoSql????
NoSql == not only struct query language
使用场景:解决高并发,高扩展,高可用,大数据存储问题而产生的数据库解决方案
键值对存储数据库
什么是Redis
Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如
数据类型:
字符串string,散列hash,列表List,集合set,有序sortedset
redis的应用场景
缓存(数据查询、短连接、新闻内容、商品内容等等)。(最多使用)
分布式集群架构中的session分离。
聊天室的在线好友列表。
任务队列。(秒杀、抢购、12306等等)
应用排行榜。
网站访问统计。
数据过期处理(可以精确到毫秒)
常用语句:
hash
hset user username zhangsan 一次只能设置一个字段值
hmset user age 20 username lisi 一次可以设置多个字段值
hget user username 一次只能获取一个字段值
hmget user age username 一次可以获取多个字段值
hgetall user 获取所有字段值
hexists user age 查看user中是否有age字段
hlen user 获取字段数量
String
set test 123 赋值
get test 取值
getset s2 222 取值并赋值,此处注意,先取到这个值,然后在赋值
例如: getset s2 222
"111" (这是原来的值,虽然已经赋值了,但是这是拿到了未附值之前的值,所以再查询一下)
get s2
"222"
HMSET items:添加多个,按照 key1 value1 key2 value2...
例如:HMSET id 3 name apple price 999.9
del key 删除
list
lpush list:1 1 2 3 : 是向列的左边增加元素(“list:1”,这个就是集合的名字)
rpush list:1 4 5 6 也是添加,只不过是向列的右边增加元素
llen list:1 获取列表中的元素的个数
lrange list:1 起始位置,结束 查询元素
set
sadd 集合的名字 value 增加
srem 集合的名字 value 删除
smembers 集合的名字 获得集合中的所有元素
sismember 集合名 所要查找的元素 判断元素是否在集合中
sorted set
zadd 键 顺序 值 顺序 值... 增加元素
例如: zadd scoreboard 80 zhangsan 89 lisi 94 wangwu
zscore 键 lisi 获取元素
zrem 键 lisi 删除元素
zrange 键 0 2 获得排名在某个范围的元素列表
zrangebyscore 键 范围 参数 获得指定分数范围的元素
zcard 键 获得集合元素的数量
ZINCRBY 键 4 lisi 增加某个元素的分数