NoSQL数据库四大分类
键值对存储(key-value):Redis,Tyrant,
列存储:HBase,Riak,Cassandra
文档数据库:mongoDb,CouchDB
图形数据库:Neo4J,InfoGrid
性能:易扩展,大数据量,高可用
Redis:C语言开发的,高性能键值对数据库
支持类型:字符串,散列,列表,集合,有序集合
使用场景:缓存,任务队列(秒杀、抢购),网站访问统计、数据过期处理(精确到毫秒),分布式集群架构session分离
Key不要过长,不要过短,统一命名规范
数据类型
存储String(用的多) 容量最多512M
set name chen
get name=”chen”
del name
incr num 数据库没有num时会自动设置为1 ,将指定的值增1,如果是其他类型会报错
decr num 递减
decr num2 -1
incrby num3 5 =5 将指定的值增加指定的值
decrby num3 4 =1
append num3 5 =15 在num3后面加上5数字
append num4 123 此时 key=num4 value=123
存储Hash(用的多)
赋值,取值,删除,增加数字,自学命令
hset myhash username jack 树名,key,value
hset myhash2 age 20
hmset 设置多个键值对
hmset myhash2 username rose age 21
hget 单个 hmget myhash username age
hgetall myhash
hdel 树名 key
nil=null
hincrby myhash age 5 数值加5
hexists myhash user 1有这个key 0无这个key
hlen myhash 属性的个数
hkeys myhash 得到所有key名称
hvals myhash 所有value
存储list常用命令:两端添加、查看列表、两端弹出、获取列表元素、扩展命令
r和l相反
lpush mylist abc 返回3 依次从放入队列
lpush mylist 123
rpush 从右边插入
lrange mylist 0 -1 第一个到最后一个 -2为倒数第二个
321cba
lpop mylist 左侧3出队列
rpop mylist 右侧a出队列
llen 返回长度
lpushx mylist a 在列表头部插入,若不存在会返回0
lrem mylist count数量 value
lrem mylist 0 a 从头到尾删除队列里所有的a
lrem mylist 2 a 从头到尾删除队列里2个a
lset list 3 mmm 把下标(从0开始)为3的值改为mmm
linsert list before b 11 在值为b的前面查入11,对应after
rpoplpush list1 list2 将list1的队尾元素弹出压入list2队头
此用于生产者消费者
存储Set
和List不同的是,Set集合不允许出现重复的元素
常用命令:添加、删除,获取集合元素,集合交集,差集,并集,扩展命令
添加:sadd myset a b c 返回1 不能再接着添加重复元素
sadd myset 1 2 3 继续添加
srem myset 1 2 返回2,删除了2个元素
smembers myset 查询
sismember myset a 判断是否存在 返回1存在,0不存在
运算 sadd myset1 a b c
sadd myset2 a c 1 2
差集: sdiff myset1 myset2 返回b,与diff前后顺序有关,前面减后面剩下的
并集: sunion myset1 myset2
交集: sinter myset1 myset2
获得set中成员的数量 scard myset1 返回3
随机返回集合的一个元素:srandmember myset1
将两个集合的差集存在新的集合 sdiffstore my myset1 myset2 12差集结果存到my中
sinterstore , sunionstore 一样
特殊场景:跟踪唯一性数据,用户维护数据对象之间的关联关系
订单ID买了相同产品相同的客户,求交集
存储Sorted-Set 有序的
游戏排名,微博热点话题
添加元素,获得,删除,范围查询,扩展命令
添加: zadd mysort 70 张三 80 李四 90 王五 返回3:分数+元素
zadd mysort 100 张三 返回0:因为已经有张三,但是张三的分数被替换了
zscore mysort zs 查询zs的分数
zcard mysort 返回元素个数
zrem mysort zs ls 删除张三李四元素 ,返回剩余元素个数
范围查找 zrange mysort 0 -1 只查询列出元素
zrange mysort 0 -1 withscores 默认由小到大列出元素+分数
zrevrange mysort mysort 0 -1 withscores 从大到小,0到-1级
zremrangebyranke mysort 0 4 排序0到4级的删除
zremrangebyscore mysort 80 100 分数80到100的删除
zrangebyscore mysort 0 100 withscores 0-100分
扩展命令
zincrby mysort 3 ls 给李四分数加3
zount mysort 80 90 80到90分有多少人
使用场景:大型积分游戏排行榜,构建索引数据
通用指令:
keys * 查询所有key
key my* 所有以my开头
key my? my1 ,my2 ,my3
del key
rename keyName keynewName重命名
type keyname 查看类型
expire keyname 1000 设置1000秒后key消失
ttl keyname 查看key还有多少秒消失 ,如果没有设置返回-1
代码获取 redis 版本号
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
java获取多个天平数据,存到redis中
串口,天平数据,redis
Redis 串口 天平 -
获取App应用版本号或者当前版本号
有时候制作App是需要做一个版本信息的功能,这时就需要读取当前版本号,下面我来介绍一种方法吧 在AndroidM
android android studio ide xml 版本号 -
获取系统版本号
[[UIDevice currentDevice] systemVersion]
职场 系统 休闲 获取 版本号 -
redis lua版本号 redis版本号怎么查
python查看redis版本。 import redisprint(redis.VERSION)
redis lua版本号 redis python -
javascript版本号 js获取app版本号
Js - 获取、判断浏览器版本信息
javascript 获取ie版本 JavaScript 字符串 chrome Chrome