redis数据结构和操作命令

        redis使用key-value结构存储数据,常用的有五种数据结构:

                String:字符串

                hash:哈希

                list:列表

                set:集合

                sorted set:有序集合

      常用命令

dbsize

查看数据库已存入数据记录数。

keys *

查看所有key。也可以使用keys *a之类的查看特定特征的key。

select num

切换数据库,默认redis有16个数据库对应num为0-15,可以在redis.conf中修改。

flushall

清空所有数据库的数据

flushdb

清空当前数据库的数据

client list

显示已连接的客户端列表

client kill ip:port

断开某个客户端的链接

shutdown

关闭redis数据库

exit

断开并退出客户端操作

 

      String字符串 

基本类型。二进制安全,可以存放任何数据,比如图片和序列化对象,单个对象最大不超过512MB。

set  key value

存入字符串,双引号可以省略。

get key

获取字符串,同样可以省略双引号。

del key

删除

strlen key

显示字符串长度

append key str

在key的value后面跟加str

incr key

自增

decr key

自减

incrby key num

自增num

decrby key num

自减num

expire key time

以秒设置存活时间

pexpire key time

以毫秒设置存活时间

ttl key

查看还有多少时间,没有设置时间的显示为-1,设置的显示为剩余时间,到时间的(即不存在的)显示为-2

setnx key value

如果不存在则放入,如果存在则失败

setex key num value

待时间设定值

getrange key index1 index2

从index1到index2,取字符串

setrange key index upvalue

从index开始,覆盖型替换字符串为upvalue,没有覆盖到的不变

mset k1 v1 k2 v2 ...

同时设置多个数据

mget k1 k2 ...

同时获取多个数据,分行显示

msetnx k1 v1 k2 v2 ...

同时设置多个数据,如果有数据已存在则设置失败,一个存在,全部失败。

 

      hash哈希

hmset key property1 value1 preperty2 value2 ...

存入哈希数据,key是哈希数据的key,property对应的是各个属性,value对应的是各个属性对应的数据。并没有要求一次性数据存储完,完全可以后期再修改添加,不会对之前的数据产生影响。

hget key property

获取key哈希数据中property属性对应的数据。

hgetall key

获取所有属性和数据。

hmget key property1 property2...

获取所有列出的属性值

hdel key property

删除hash中的摸个property

hlen key

显示有几个属性

hvals key

显示所有属性

hkeys key

显示所有属性值

hincrby key property num

给某个属性值加整数num

hincrbyfloat key property float

给某个属性值加小数float

hexists key property

判断key中是否存在某个属性

hsetnx key property value

如果不存在则增加属性和属性值

 

 

      list列表

list类似java中的数组和集合的中间产物。可以用于模仿栈和队列。为方便记录和理解,先定义:左边为头,即前方;右方为底,即后方。有些操作提供双向,有些操作只有单向。所以默认下标

rpush key value

从右方压入数据。

lpush key value

从左方压入数据。

rpop key

从右侧弹出数据

lpop key

从左侧弹出数据

rpoplpush key1 key2

从key1右侧弹出,并从左侧压入key2

lrem key num value

删除key中num个value。

lindex key index

使用下标查询数据,不存在则显示为空。

lset key index value

通过索引设置列表元素的值。

lrange key index1 index2

查询从下标index1到index2的数据。-1代表最后一个。

lset key index newvalue

更新下表为index的数据。

sort key

正序排列输出。但是只能对数值进行排序,redis会先将字符串常识转成double类型,然后排序,如果是字符,则或报错。

sort key desc

反序排列输出。

llen key

显示数据数量

linsert key before oldvalue newvalue

在oldvalue前增加newvalue

linsert key after oldvalue newvalue

在oldvalue后增加newvalue,注意oldvalue对应的是数据,不是下标。

 

      set集合

set是无序集合,不允许重复。

sadd key v1 v2 ...

添加成员。

smembers key

显示所有成员。

srandmember key num

随机显示num个数据,可以用于抽奖。

scard key

随机弹出数据。

sismember key value

判断value是否存在在key中

srem value

删除成员。

smove key1 key2 value

从key1中弹出数据value,并压入key2中。

sdiff key1 key2 ...

取key1中不存在在后面的集合中的数据,差集

sinter key1 key2 ...

取所有集合中相同的数据,交集

sunion key1 key2 ...

去所有集合中的数据,并集。

 

      zset(sorted set)有序集合

zset和set一样也是集合,不允许重复。zset中的每个元素都会关联一个double类型的分数(score),就是通过分数为集合中的成员排序。分数可以重复,添加时,如果成员重复,则直接覆盖。排序默认采用的升序。查询时,如果按照分数筛选,分数可以通过增加(,表示不包含,即(min max表大于min小于max。

zadd key score1 value1 score2 value2 ...

添加成员。

zrem key value1 value2 ...

删除成员.

zscore key value

显示某成员的分数。

zrank key value

显示某成员的名次。

zrevrank key value

显示某成员倒叙的名次。

zcard key

显示有几个成员

zcount key min max

显示分数在min到max中的有几个,可以添加(。

zrange key index1 index2

按顺序显示从index1到index2的数据。

zrevrange key index1 index2

倒叙显示从index1到index2的数据

zrange key index1 index2 withscores

按顺序带分数显示从index1到index2的数据。

zrangebyscore key min max limit index num withscores

将分数在min到max之间的按顺序显示,可以添加(。limiit表示按照获取的数据顺序,从index下标开始取num,类似于实现了分页。可以不带limit子句,这样就是将查询的内容全部显示。withscores也是可以选择使用,带上表示同时显示分数。

zrevrangebyscore key max min limit index num withscores

倒叙到分数显示,同上,可以不带limit子句。withscores也是可以选择使用,带上表示同时显示分数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值