NoSQL有多种解释:(Not relational SQL)意思为“非关系SQL”。
NoSQL数据库并没有一个统一的架构,两种NoSQL数据库之间的不同甚至远远超过两种关系型数据库的不同,可以说,各种NoSQL产品各有所长,成功的NoSQL必然特别适用于某种场合或者某些应用。
目前国内众多网站,如淘宝、京东、百度等都在使用NoSQL的产品。
redis是一个免费开源的NoSQL产品。
redis使用ANSI C语言编写,是一个key-value存储系统。它支持存储的value类型很多,包括string、hash、list、set和zset(sorted set-有序集合)。
redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。
redis是一个高性能的key-value NoSQL产品,它提供了Java、C/C++,C#、PHP、等等开发接口,使用很方便。
(1)启动服务器
redis-sever
(2)启动客户端(不支持中文的)
redis-cli
(3)用下面的命令启动客户端,可以正确显示中文
redis-cli --raw
(4)运行测试命令
ping
服务器回复PONG代表成功
select 选择数据库,redis有从0到15,16个数据库
select 3 选择3号数据库
select 0 选择0号数据库
默认选择的是0号数据库
redis是key-value的数据结构
每条数据都是一个“键值对”
键的类型是字符串string
值的类型分为:字符串string、哈希hash、列表list、无序集合set、有序集合zset
set user1 aaa:添加一个键user1 值为aaa
setex user2 3 bbb :设置键值对user2为’bbb’,过期时间为3秒
mset user2 ccc user4 ddd user5 eee:同时添加多个键值对
append user haha:追加haha
get user1:获取user1的值
mget user1 user2 user3:获取多个值
del user1:删除值
del user2 user3:删除多个值
keys user1:查找键user1是否存在
keys *:查找所有键
exists user1:查找键,如果存在返回1,如果不存在返回0
type user1:查看user1对应的值的类型
expire user1 100;对已经存在的键设置过期时间100秒
ttl user1:以秒为单位,返回大于0代表有效时间,返回-1为永远有效,返回-2为键不存在
1.用于存储键值对的集合
2.每个哈希中的键可以理解为字段(field),一个字段(field)对应一个值value
3.hash中值value类型为字符串string
4.同一个哈希中字段名field不可以重复
hset huser1 name tom:hset 键 字段 值
hmset huser2 name maru sex female:添加一个huser2 值有2个
type huser1:查看huser1的类型
hkeys huser1:获取huse1的所有的字段
hget huser1 name:获取huser1的name字段对应的值
hmget huser name sex:获取huser1的name、sex字段对应的值
hvals huser1:获取所有字段的值
hgetall huser1 :获取所有的字段名包括值
hdel huser1 sex:删除huser1的sex字段对应的值
del huser1:删除huser1的所有字段
lpush luser1 aa:从列表左侧添加luser1 值为aa
rpush luser1 bb:从列表右侧添加bb
linsert luser1 before aa 11:在aa前面插入11
linsert luser1 after aa 22:在aa后面插入11
索引从左侧开始,第一个值的索引为0,索引可以为负数,表示从尾部开始计数,-1表示最后一个值
lrange key 0 -1:返回列表0到最后一个的值
lset user1 1 china :修改user1 的第二个元算的值为China
删除列表的重复的值,count>0从头往尾删除,count<0从尾往头删除,count=0删除所有值,lrem luse1 -1 h1 从右往左删除一个h1,lrem luse1 0 h1 删除所有h1,lrem luse1 1 h1 从左往右删除1个h1
集合中不允许有重复的值,对于集合里的值只能添加与删除,不能修改
sadd suser2 aa bb cc:集合中添加值
smembers suser2 显示集合中的值
srem suser2 bb:删除集合中的bb
每一个值都会关联一个分数,分数可以为负数,通过分数值的大小对集合中的值进行排序,集合中不允许有重复的值,对于集合里的值只能添加与删除,不能修改
zadd zuser1 1 aa 5 bb 3 cc 8 dd:添加的值会按scrore的大小排序
zrange zuser1 0 -1: 返回列表从头打尾的值
zrange zuser1 0 -1 withscores:分数和值都显示
zrangebyscore zuse1 2 6 返回score 在2-6之间的值
zscore zuser1 dd :返回值为dd的score
zrem zuser1 dd :删除
zremrangebyscore zuser1 0 10:通过score删除值
留言与评论(共有 0 条评论) “” |