数据库-redis-命令总结

redis特性

1.基于内存的key-value数据库  
2.基于c语言编写的,可以支持多种语言的api //set每秒11万次,get 81000次  
3.支持数据持久化  
4.value可以是string,hash, list, set, sorted set  

使用场景
1. 去最新n个数据的操作
2. 排行榜,取top n个数据 //最佳人气前10条
3. 精确的设置过期时间
4. 计数器
5. 实时系统, 反垃圾系统
6. pub, sub发布订阅构建实时消息系统
7. 构建消息队列
8. 缓存

redis常用命令

数据库操作
默认是使用下标为0的数据库,选择范围是0-15,该命令适用于区分开发环境

系统信息:info
测试链接情况:ping(正常返回pong)
选择第一个库:select index  
清除当前数据库:flushdb
清除所有数据库: flushall
查看当前数据库数量:dbsize
key
keys * 					获取所有的key  
keys pattern			获取给定模式的key
randomkey   			获取随机一个key  
type key    			获取key的类型  
exists key  			判断是否存在key(1存在,0不存在)
ttl key					获取key过期时间(-1永久,-2过期)
pttl key 				获取key过期时间(以毫秒为单位返回)
expire key 10    		设置过期时间(秒)
pexpire key 1000 		设置过期时间(毫秒)
persist key      		删除过期时间


del key   				删除key  
dump key 				序列化给定 key ,并返回被序列化的值
move key db 			将当前数据库的 key 移动到给定的数据库 db 当中
rename key newkey 		修改 key 的名称
renamenx key newkey 	仅当 newkey 不存在时,将 key 改名为 newkey
string(偏移量从0开始)
set key1 value1 					设置key的值
get key1    						获取key的值
mset key1 value1 key2 value2    	批量设置
mget key1 key2           			批量获取
setex key time(秒) value				添加string类型数据并设置过期时间
setnx key value          			设置string数据(避免对已经存在的key进行覆盖)
append key str						将str追加到key后面(返回总长度)
setrange key offset value 			修改值从offset后开始替换为value(返回总长度)
getset key value1      				修改值为value1,返回value(如果不存在value返回nil)

strlen key							获取value的长度
getrange key start len       		获取从start处len个字符(不影响value)
---------------------

incr key                 		将 key 中储存的数字值增一
incrby key increment            将 key 所储存的值加上给定的增量值(increment)
decr key                 		将 key 中储存的数字值减一
decrby key increment            key 所储存的值减去给定的减量值(decrement)
incrbyfloat              		增减浮点数

getbit key offset				对key所储存的字符串值,获取指定偏移量上的位(bit)
setbit key offset value			对key所储存的字符串值,设置或清除指定偏移量上的位(bit)
bitcount key[start end]			对key的字符串值,统计区间内bit位为1的个数
bitop and destkey 				对一个或多个key求逻辑并,并将结果保存到destkey
bitop or destkey				对一个或多个key求逻辑或,并将结果保存到destkey
bitop xor destkey				对一个或多个key求逻辑异或,并将结果保存到destkey
bitop not destkey key			对给定key求逻辑非,并将结果保存到destkey
hash(增量在原始值基础增加)
hset key field value					设置field字段的值
hget key field							获取field字段的值
hmset key field1 value1 field2 value2	批量设置hash表
hmget key field1 field2					批量获取hash表某些字段的值
hsetnx key field value                  设置field字段的值(避免已经存在覆盖)
hdel key field1 field2            	    删除一个获多个hash表字段

hexists key field          	            判断是否存在field字段(1存在,0不存在)
hgetall key               	            获取hash表所有数据
hlen key                                获取hash表字段数量
hkeys key                 	            只获取字段名
hvals key                	            只获取值    
---------------------							            
hincrby key field increment             为哈希表 key 中的指定字段的整数值加上增量 increment 

hincrbyfloat key field increment 		为哈希表 key 中的指定字段的浮点数值加上增量 increment 
list(index从0开始)
lpush key value1 value2      左侧插入节点
rpush key value1 value2      右侧插入节点
linsert key before value value1  在value之前插入value1
linsert key after value value1   在value之后插入value1
lset key index value         修改index节点的值为value
lpop key              		 左侧弹出一个节点
rpop key	              	 右侧弹出一个节点
lrem key count value  		 删除count数量的value
ltrim mylist index1 index2   删除index1到index2的节点元素

llen key              		 获取list长度
lindex key index			 获取index位置的节点元素
lrange key index1 index2     数据index1到index2的节点元素
---------------------
rpoplpush list list2     	 移除列表的最后一个元素,并将该元素添加到另一个列表并返回
set(value不重复)
sadd key value1 value2		 		设置集合 
srem key value         		 		删除集合中的value
spop key count               		从集合随机弹出count个元素(并显示)
smove source destination member 	将 member 元素从 source 集合移动到 destination 集合

scard key					 获取集合元素个数
smembers key       			 获取全部集合元素
srandmember key count        随机获取count个集合中的元素
sismember key value 		 判断value是否在集合中(1存在,0不存在)
------------------
sdiff key1 key2						返回给定所有集合的差集	
sdiffstore destination key1 key2 	返回给定所有集合的差集并存储在destination中	
sinter key1 key2					返回给定所有集合的交集
sinterstore destination key1 key2 	返回给定所有集合的交集并存储在destination中
sunion key1 key2					返回所有给定集合的并集
sunionstore destination key1 key2	所有给定集合的并集存储在destination集合中
zset(有序集合,通过关联score进行排序)
zadd key score1 member1 		 向有序集合添加一个或多个成员,或者更新已存在成员的分数

zrem key member					 移除有序集合中的一个或多个成员
zremrangebylex key min max 		 移除有序集合中给定的字典区间的所有成员
zremrangebyrank key start stop 	 移除有序集合中给定的排名区间的所有成员
zremrangebyscore key min max 	 移除有序集合中给定的分数区间的所有成员


zcard key  						获取有序集合的成员数
zscore key member 				获取有序集合成员的分数值
zrank key member 				获取有序集合中指定成员的索引
zrange key start stop			获取有序集合指定索引区间内的成员
zcount key min max 				获取有序集合中指定区间分数的成员数量
zlexcount key min max 			获取有序集合中指定字典区间内成员数量
zrangebylex key min max  		获取字典区间有序集合的成员
zrangebyscore key min max		获取分数区间有序集合的成员

zrevrank key member 			获取有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序
zrevrange key start stop 		获取有序集中指定区间内的成员,通过索引,分数从高到低
zrevrangebyscore key max min	获取有序集中指定分数区间内的成员,分数从高到低排序
--------------------
zincrby key increment member 		有序集合中对指定成员的分数加上增量 increment
zinterstore destination numkeys key 计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中
zunionstore destination numkeys key 计算给定的一个或多个有序集的并集,并存储在新的 key 中
zscan key cursor					迭代有序集合中的元素(包括元素成员和元素分值)
sort(默认使用数据排序,value为字符串,需要在key后面增加alpha参数)
sort key							按照asc的方式来排序
sort key desc						降序
sort key by pattern					按照一个模式排序
sort key limit start num			获取从下标start开始的num个元素(下标从0开始)
sort key store destlist				把排序的结果存储到destlist中
store参数							表示把sort查询的结果集保存起来、
limit参数(限制返回结果)				offset(指定要跳过的元素数量),count(返回对象数量)

redis支持的脚本命令

Eval的使用
eval script numkeys key , arg

<1> script: 你的lua脚本
<2> numkeys: key的个数
<3> key: redis中各种数据结构的替代符号
<4> arg: 你的自定义参数
其他命令
SCRIPT LOAD script	
将给定的脚本缓存,不执行,并返回sha1校验值  

EVALSHA sha1 numkeys key [key ...] arg [arg ...]  
根据给定的 sha1 校验码,对缓存在服务器中的脚本进行求值

SCRIPT EXISTS sha1 [sha1 ...]  
给定一个或多个脚本的 SHA1 校验和,返回一个包含 0 和 1 的列表,表示校验和所指定的脚本是否已经被保存在缓存当中  

SCRIPT FLUSH  
清除所有 Lua 脚本缓存	 

SCRIPT KILL  
杀死当前正在运行的 Lua 脚本,当且仅当这个脚本没有执行过任何写操作时,这个命令才生效(如果已经执行了写操作,则需要通过shutdown nosave命令来处理)
执行脚本的方式
redis-cli --eval script args  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值