Redis非关系型数据库

Redis有16个数据库 0-15

因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。

  • String: 字符串
  • Hash: 散列
  • List: 列表
  • Set: 集合
  • Sorted Set: 有序集合

key

key用于管理redis的键

得到所有key的名字

keys *

切换数据库

select 0  0:可以是0-15之间

添加key

set key的name key的值

例:
set name 张三 一个key叫name值为张三的键值对

删除key

del key的名字

例:
del name

给key设置过期时间

--如一天后消息自动删除
expire key的名字 秒

例:
expire name 10

返回key的剩余时间

当给key设置过期时间时可以查询还剩的生存时间
ttl key的名字

例:
ttl name 返回的时时间秒

随机返回一个key

randomkey

修改key的名字

rename key的name 新名字

例:
rename name name2 把key为name的改成name2

(字符串)String

设置key的值

set key的名字 value  

例:
set name 测试

获取指定key的值

get key的名字

例:
get name

获取key的字符串长度

strlen  key的名字

例:
strlen name

数字值增1

incr key的名字

例:age=10
incr age //11

数字值减1

decr key的名字

例:age=11
decr age //110

数字增加定量的值

incrby key 增加多少

例:
incrby age 5

数字减少定量的值

decrby key 减少多少

例:
decrby key 5

(哈希)Hash

添加一个

hset key的名字 属性 值

例:
hset lang 1 java

一次添加多个

hmset key的名字 属性11 属性22 ...

例:123属于属性 可以不是数字 随便名字
hmset lang2 1 java 2 C# 3 javascript

显示所有key的属性

hkeys key

例:
hkeys lang2

显示所有key的值

hvals key

例:
hvals lang2

获取给定属性的值

hget key 属性

例:1是属性 也可以是其他的属性
hget lang2 1 //java

获取多少给定属性的值

hmget key 属性1 属性2

例:1 2 3为内容的属性 可以是其他的
hmget lang2 1 2 3 // java c++ jvasrcipt

删除指定属性值

hdel key 属性

例:删除属性1的java
hdel lang2 1

删除多个给定属性值

hdel key 属性1 属性2

例:删除c++ javascript
hdel lang2 1 2

(列表)List

头部添加

lpush key value1 || value1 value2

例://加在最前面
lpush calss c1 c2 .. || c1

尾部添加

rpush key value1 || value1 value2

例://加在最后面
rpush class c1 || c2 c3 ..

获取list的长度

llen key 

例:
llen class //3

通过索引获取元素

lindex key index

例:
lindex class 1

获取列表指定范围

lrange key start stop 

例:
lrange class 0 2 //可以是负数 负数就是倒数的第几个

移除左边并获取第一个元素

lpop key

例: 移除左边第一个 并获取移除后的第一个
lpop class

移除右边并且获取第一个元素

rpop key

例: 移除右边第一个 并获取移除后的第一个
rpop class

(集合)Set

添加元素

sadd key 值12

例:
sadd se1 cf1 cf2 cf3 cf4 || cn(一个)

移除元素

srem key 值1

例:
srem se1 cf1

移除并返回一个随机元素

spop key

例:
spop se1

返回集合的所有元素

smembers key

例:
smembers se1

差集

sdiff key1 key2

例:
sdiff se1 se2

交集

sinter key1 key2

例:
sinter se1 se2

并集

sunion key1 key2

例:
sunion se1 se2

(有序集合)Sorted set

添加一个

zadd key 属性 值

例:
zadd key 1 c++

添加多个

zadd key 属性11 属性22

例:
zadd key 1 c++ 2 java

返回范围内成员

ZRANGE key 0 10 WITHSCORES

例:
zrange sort 0 10 withscores