NoSQL 表示为“非关系SQL”,不支持多表查询,没有表和关系的概念,主要在内存中操作<效率更高>。
redis 是一个免费开源的NoSQL产品,使用 ANSI C 语言编写,是一个 key-value 存储系统。支持的存储的 value包括<string,hash,list,set,zset(sorted-set==有序集合)>。
redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件中。
redis-server
redis-cli
redis-cli --raw
ping
数据库本身没有名称,默认16个,通过0-15来标识,例如选中编号为1的数据库:
select 1
redis在初始化时,默认选择0号数据库
如果设置的键不存在则为添加、如果已经存在则为修改
redis 中字符串可以使用单引号或者双引号,也可以省略引号
设置键值
set key value
设置键值以及过期时间
set key senconds value
设置多个键值对
mset key1 vlaue1 key2 value2...........
追加值
append key value
获取单个值
get key
获取多个值
mget key1 key2 ............
删除键以及其对应值
del key1 key2 ..........
查找键
参数支持正则表达式,找到键,返回键名,找不到返回空
keys pattern ====================== 例如: 1.查找所有键 keys "*" 2.查找包含s的键 keys "*s*"
2.判断键是否存在
exists key <返回1表示存在>
3.查看键对应的 value 类型
type key
4.设置键过期的单位
以秒为单位
如果没有指定的国企时间则一直存在 直到通过del 移除
expire key seconds
5.查看键有效时间
以秒为单位
ttl key
设置单个字段
hset key field value --- 其中<field value> 对应哈希表中的<key value>
设置多个字段
hmset key filed1 value1 field2 value2 ......
获取指定键所有的字段
hkeys key
获取一个字段的值
hget key field
获取多个字段的值
hmget key field1 field2
获取所有字段的值
hvals key
获取所有字段名包括字段对应的值
hgetall key
删除hash中的指定字段
hdel key field1 field2..........
删除整个hash键以及字段和值,使用del命令
del key1 key2..........
从左侧插入值<头插>
lpush key value1 value2
从右侧插入值<尾插>
rpush key value1 value2
在指定值的前或者后插入值
linsert key before/after value new-value
返回列表中指定范围内的值
lrange key start stop <start stop认为是闭包含的范围>
设置指定索引的值
lset key index value
删除指定的值
lrem key count value
集合中添加值
sadd key value1 value2.........
返回所有值
smembers key
删除指定的值
srem key value
添加值
zadd key score1 value1 score2 value2
返回指定范围内的值
zrange key start stop[withscores]
返回分数(score)在 min 和 max 之间的值
zrangebyscore key min max
返回值 value 的分数(score)
zscore key value
删除指定的值
zrem key value1 value2........
删除分数(score)在指定范围之间的值
zremrangebyscore key min max