1、connection
redis-cli默认连接127.0.0.1:6379
redis-cli -h 127.0.0.1 -p 6379
auth password
select index
2、keys
del key1 key2 ...
exists key1 key2 ...
 rename key newkey
renamenx key newkey
keys pattern
支持glob风格通配符规则。
| 符号 | 含义 | 
| ? | 匹配一个字符 | 
| * | 匹配任意个(包括0个)字符 | 
| [] | 匹配中括号间的任一字符,可以使用-符号表示一个范围,如a[b-d]可以匹配ab、ac和ad | 
| \x | 匹配字符x,用于转义字符,如要匹配?就需要使用\? | 
object encoding key #查看对象编码
type key #获取key的类型
3、server
slowlog #慢查询日志(不包括IO操作,只针对命令执行时间)
shutdown save|nosave
这个命令执行如下操作:
- 停止所有客户端;
- 如果配置了save 策略 则执行一个阻塞的save命令;
- 如果开启了AOF,则刷新aof文件;
- 关闭redis服务进程(redis-server);
如果配置了持久化策略,那么这个命令将能够保证在关闭redis服务进程的时候数据不会丢失,如果仅仅在客户端执行SAVE 命令,然后 执行quit命令,那么数据的完整性将不会被保证,因为其他客户端可能在执行这两个命令的期间修改数据库的数据。
注意: 一个没有配置持久化策略的redis实例 (没有aof配置, 没有 “save” 命令) 将不会 在执行shutdown命令的时候转存一个rdb文件
SAVE 和 NOSAVE 修饰符
- SHUTDOWN SAVE #能够在即使没有配置持久化的情况下强制数据库存储;
- SHUTDOWN NOSAVE #能够在配置一个或者多个持久化策略的情况下阻止数据库存储;
MEMORY USAGE #返回一个key和它值在RAM中占用的字节数,实际数据为空,但是存储时仍然耗费了一些内存,这些内存用于Redis 服务器维护内部数据结构。随着key和value的增大,内存使用量和key 大小基本成线性关系。
MEMORY STATS #将服务器的内存使用情况以数组情况返回
flushdb
flushall async
dbsize
command count #redis命令总数
client getname
client setname
client list
client id
4、string
append key value 追加
getrange key start end 随机访问
127.0.0.1:6379> append score 10
(integer) 2
127.0.0.1:6379> append score 35
(integer) 4
127.0.0.1:6379> append score 45
(integer) 6
127.0.0.1:6379> type score
string
127.0.0.1:6379> get score
"103545"
127.0.0.1:6379> getrange score 0 1
"10"
127.0.0.1:6379> getrange score 2 3
"35"
127.0.0.1:6379> getrange score 4 5
"45"decr key #原子性减1
decrby key n #原子性减n
get key
getset
127.0.0.1:6379> get age
"50"
127.0.0.1:6379> getset age 10
"50"
127.0.0.1:6379> get age
"10"incr key #原子性加1
incrby key n #原子性加n
incrbyfloat key value #增加浮点数
mset key1 value1 key2 value2 ... #原子的,不存在只更新一部分key的情况
mget key1 key2 ...
msetnx key1 value1 key2 value2 ... #原子的,只要有一个key不存在,则存在的key也不更新
127.0.0.1:6379> keys *
1) "score"
2) "age"
127.0.0.1:6379> get age
"10"
127.0.0.1:6379> msetnx age 20 length 50
(integer) 0
127.0.0.1:6379> get age
"10"strlen key #获取长度
psetex key milliseconds value
setex key seconds value
setnx key value
SET key value [EX seconds] [PX milliseconds] [NX|XX]
- EX seconds #设置键key的过期时间,单位时秒
- PX milliseconds #设置键key的过期时间,单位时毫秒
- NX #只有键key不存在的时候才会设置key的值
- XX #只有键key存在的时候才会设置key的值
命令 SET resource-name anystring NX EX max-lock-time 是一种用 redis 来实现锁机制的简单方法。
解锁脚本
if redis.call("get",KEYS[1]) == ARGV[1]
then
    return redis.call("del",KEYS[1])
else
    return 0
end
5、hash
redis不支持类型嵌套,比如hash类型的字段只能是string,不能是list或其他类型
hset key field value #不存在则set,存在则更新
hsetnx key field value #不存在时,才set,原子操作
hget key field
hmset key field1 value1 field2 value2 ...
hmget key field1 field2 ...
hgetall key
hexists key field
hdel key field1 field2 ...
hkeys key #获取所有属性
hvals key #获取所有值
hlen key #获取属性数量
6、list
lpush key value1 value2 ...
rpush key value1 value2 ...
lpop key #会删除元素
lpop key
lpush结合lpop(或rpush结合rpop)可以做栈
lllen key #list长度,时间复杂度为O(1) ,因为读取的是现成的值,不像mysql select count(*)会全表扫描
lrange key start end #不会删除元素,包含两端元素,支持负索引
ltrim key start end #和lrange类型,但会删除元素
lrem key count value #删除前count个值为value的元素,count>0从左删除,count<0从右删除,count=0删除所有
lindex key index #获取指定索引的元素
lset key index value #在指定索引处插入元素
linsert key before|after pivot value #将value插入到pivot的前面或后面
rpoplpush src dst #移除src队列最右边的元素,插入到dst队列的最左边,src和dst可以相同
7、set
sadd key value1 value2 ... #添加元素
srem key value1 value2 ... #删除元素
SMEMBERS key #获取所有元素
SISMEMBER key value #判断元素是否存在
集合间运算
scard key #获取元素个数
spop key #随机删除一个元素
SRANDMEMBER key count #随机获取count个元素,如果不传count则随机获取一个元素
8、zset
- list是用链表实现的,数据访问越靠两端的元素越快,适合实现新鲜事、日志这类很少访问中间元素的应用
- 而zet是通过skiplist实现的,即使读取中间部分的元素也很快
zadd key score1 value1 score2 value2 ... #添加元素,如果元素已存在则覆盖之前的分数
zscore key value1 #获取元素的分数
zrange key start end withscores #先从小到大排序,再返回start到end之间的元素,传入withscores会返回分数
zrevrange key start end withscores #从大到小排序
ZINCRBY key score value #给元素加分
zrangebyscore key min max withscores limit offset count #获取指定分数范围内的元素,min和max默认包含,(80表示不包含,-inf、+inf分别表示负无穷、正无穷
zrevrangebyscore #从大到小排序,注意min和max也是反的
zcard key #获取元素数量
zcount key min max #获取指定分数范围内的元素个数
zrank key value #获取元素排名
zrevrank key value #从大到小排序,获取元素排名
 
                   
                   
                   
                   
                             本文全面介绍了Redis的各种命令,包括连接管理、键操作、服务器管理、字符串、哈希、列表、集合和有序集合等,深入解析了每种命令的功能及使用场景。
本文全面介绍了Redis的各种命令,包括连接管理、键操作、服务器管理、字符串、哈希、列表、集合和有序集合等,深入解析了每种命令的功能及使用场景。
           
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
                     
              
             
                   3069
					3069
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
					 
					 
					


 
            