4、redis常用命令和数据类型(http://redisdoc.com/)

1、常用命令

INFO:显示当前节点redis运行状态

127.0.0.1:6379> info server
# Server
redis_version:5.0.9
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:6cf2e2ee2f3539a2
redis_mode:standalone
os:Linux 3.10.0-693.el7.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
atomicvar_api:atomic-builtin
gcc_version:4.8.5
process_id:6332
run_id:7cbc7d1487ca4359faa02a95f57bea1efe3ddfbd
tcp_port:6379
uptime_in_seconds:819
uptime_in_days:0
hz:10
configured_hz:10
lru_clock:831696
executable:/apps/redis/bin/redis-server
config_file:/apps/redis/etc/redis_6379.conf

select:切换数据库(0-15)

注:当使用redis cluster时,就不支持多个数据库了,只支持0号数据库

127.0.0.1:6379[15]> select 0
OK
127.0.0.1:6379> select 16
(error) ERR DB index is out of range

keys:查看所有key(禁止使用)

 BGSAVE:手动备份RDB文件

# 交互式
127.0.0.1:6379> bgsave
Background saving started
127.0.0.1:6379>

# 非交互式
[root@vms228 ~]# redis-cli -a redis --no-auth-warning bgsave
Background saving started

DBSIZE:查看key的数量

FLUSHDB(慎用):删除当前库所有key

FLUSHALL(慎用):删除所有库的所有key

SHUTDOWN:正常关闭redis(安全),关闭之前会持久化数据。

2、数据类型

2.1、字符串

EX seconds : 将键的过期时间设置为 seconds 秒。 执行 SET key value EX seconds 的效果等
同于执行 SETEX key seconds value 。
PX milliseconds : 将键的过期时间设置为 milliseconds 毫秒。 执行 SET key value PX 
milliseconds 的效果等同于执行 PSETEX key milliseconds value 。
NX : 只在键不存在时, 才对键进行设置操作。 执行 SET key value NX 的效果等同于执行 SETNX 
key value 。
XX : 只在键已经存在时, 才对键进行设置操作。

2.1.1、set\get 

# 设置key-value
127.0.0.1:6379> set class linux
OK

# 获取key-value
127.0.0.1:6379> get class
"linux"

2.1.2、获取key的有效期

127.0.0.1:6379> ttl class
(integer) -1

2.1.3、设置key-value有效期EX

127.0.0.1:6379> set hongbao 100 EX 10
OK
127.0.0.1:6379> ttl hongbao
(integer) 6
127.0.0.1:6379> ttl hongbao
(integer) -2
127.0.0.1:6379> get hongbao
(nil)

2.1.4、当key的value之存在时执行 XX

127.0.0.1:6379> get class
"linux"
127.0.0.1:6379> set class linux2 XX
OK
127.0.0.1:6379> get class
"linux2"

2.1.5、当key的value值不存在时执行 NX

127.0.0.1:6379> set class linux3 NX
(nil)
127.0.0.1:6379> get class
"linux2"

2.1.6、查看key类型

127.0.0.1:6379> type class
string

2.1.7、删除一个或多个key

127.0.0.1:6379> del k1
(integer) 1
127.0.0.1:6379> del k2 k3
(integer) 2

2.1.8、批量插入、获取mset/mget

127.0.0.1:6379> mset k1 v1 k2 v2
OK
127.0.0.1:6379> mget k1 k2
1) "v1"
2) "v2"

2.1.9、追加value值:append

127.0.0.1:6379> get k2
"v2"
127.0.0.1:6379> append k2 " append"
(integer) 9
127.0.0.1:6379> get k2
"v2 append"
127.0.0.1:6379>

2.1.10、设置新值并返回旧值:getset

127.0.0.1:6379> getset k4 newv4
"v4"
127.0.0.1:6379> get k4
"newv4"

 2.1.11、返回value对应字节数(字母->1字节,汉字->3字节)

127.0.0.1:6379> strlen name
(integer) 6
127.0.0.1:6379> strlen age
(integer) 2
127.0.0.1:6379> get name
"\xe5\xb0\x8f\xe6\x98\x8e"

2.1.12、判断key是否存在:exists

127.0.0.1:6379> exists v1
(integer) 0
127.0.0.1:6379> exists k1
(integer) 1
127.0.0.1:6379> exists k1 k2
(integer) 2
127.0.0.1:6379> exists k1 k2 k3
(integer) 3

2.1.13、获取key有效期:ttl(-1:永久生效,-2不存在key)

127.0.0.1:6379> set name zzj EX 100
OK
127.0.0.1:6379> ttl name
(integer) 96

127.0.0.1:6379> ttl k1
(integer) -1


127.0.0.1:6379> ttl aaa
(integer) -2

2.1.14、更改key有效期:expire

127.0.0.1:6379> set name zzj EX 100 NX
OK
127.0.0.1:6379> ttl name
(integer) 92


127.0.0.1:6379> expire name 1000
(integer) 1
127.0.0.1:6379> ttl name
(integer) 996

2.1.15、设置永不过期:persist

127.0.0.1:6379> ttl name
(integer) 996
127.0.0.1:6379> persist name
(integer) 1
127.0.0.1:6379> ttl name
(integer) -1

2.1.16、设置递增/递减(+1   -1):incr\decr

#注:如果不设置num值,默认为0
127.0.0.1:6379> INCR num
(integer) 1
127.0.0.1:6379> get num
"1"

127.0.0.1:6379> DECR num
(integer) 0
127.0.0.1:6379> get num
"0"

2.1.17、数值加减:incrby\decrby

127.0.0.1:6379> INCRBY num2 15
(integer) 15
127.0.0.1:6379> get num2
"15"
127.0.0.1:6379> DECRBY num2 10
(integer) 5
127.0.0.1:6379> get num2
"5"

2.2、列表(双向可读写的管道,一个列表最多可以包含2^32-1个元素

2.2.1、lpush和rpush

# cba
127.0.0.1:6379> lpush llist a b c
(integer) 3

# abc
127.0.0.1:6379> rpush rlist a b c
(integer) 3

127.0.0.1:6379> type llist
list

2.2.2、获取列表个数:llen

127.0.0.1:6379> LLEN llist
(integer) 3

2.2.3、获取指定位置数据:lindex

127.0.0.1:6379> rpush list a b c d
(integer) 4
127.0.0.1:6379> lindex list 0
"a"
127.0.0.1:6379> lindex list 3
"d"
127.0.0.1:6379> lindex list -1
"d"

2.2.4、获取指定范围数据:lrange

127.0.0.1:6379> rpush list a b c d
(integer) 4
127.0.0.1:6379> lrange list 1 2
1) "b"
2) "c"
127.0.0.1:6379> lrange list 0 -1
1) "a"
2) "b"
3) "c"
4) "d"

2.2.5、修改指定位置值lset

127.0.0.1:6379> lrange list 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
127.0.0.1:6379> lset list 0 a1
OK
127.0.0.1:6379> lrange list 0 -1
1) "a1"
2) "b"
3) "c"
4) "d"

2.2.6、移除列表数据:lpop、rpop

127.0.0.1:6379> lrange list 0 -1
1) "a1"
2) "b"
3) "c"
4) "d"
127.0.0.1:6379> lpop list
"a1"
127.0.0.1:6379> rpop list
"d"
127.0.0.1:6379> lrange list 0 -1
1) "b"
2) "c"

2.2.7、截取列表:ltrim


127.0.0.1:6379> rpush list a b c d
(integer) 4
127.0.0.1:6379> ltrim list 1 2
OK
127.0.0.1:6379> lrange list 0 -1
1) "b"
2) "c"

2.3、集合set(无序且唯一)

2.3.1、生成集合:sadd

127.0.0.1:6379> SADD set1 a
(integer) 1
127.0.0.1:6379> SADD set2 a b c
(integer) 3
127.0.0.1:6379> type set1
set

2.3.2、追加数值:sadd(不能追加已存在的数值)

127.0.0.1:6379> SADD set1 b c d
(integer) 3
127.0.0.1:6379> SADD set1 b
(integer) 0

2.3.3、查看集合内所有元素smembers

127.0.0.1:6379> smembers set1
1) "d"
2) "c"
3) "b"
4) "a"

2.3.4、删除集合中的元素:srem

127.0.0.1:6379> smembers set1
1) "d"
2) "c"
3) "b"
4) "a"
127.0.0.1:6379> srem set1 c
(integer) 1
127.0.0.1:6379> smembers set1
1) "b"
2) "a"
3) "d"

2.3.5、集合交、并、差(sinter   sunion  sdiff)

127.0.0.1:6379> sadd set1 a b c d
(integer) 4
127.0.0.1:6379> sadd set2 a e c u
(integer) 4
127.0.0.1:6379> sinter set1 set2
1) "c"
2) "a"
127.0.0.1:6379> sdiff set1 set2
1) "d"
2) "b"
127.0.0.1:6379> sdiff set2 set1
1) "u"
2) "e"
127.0.0.1:6379> sunion set1 set2
1) "c"
2) "e"
3) "d"
4) "u"
5) "b"
6) "a"

2.4、有序集合(有序且不重复,每个元素是由scorevalue组成,score可以重复,value不可以重复

2.4.1、生成有序集合zadd

127.0.0.1:6379> ZADD paihangbang 90 nezha 199 zhanlang 60 zhuluoji 30 gangtiexia
(integer) 4

2.4.2、打印有序集合zrange、zrevrange、withscores

# 从低到高,正序
127.0.0.1:6379> zrange paihangbang 0 -1
1) "gangtiexia"
2) "zhuluoji"
3) "nezha"
4) "zhanlang"

# 从高到低,倒序
127.0.0.1:6379> zrevrange paihangbang 0 -1
1) "zhanlang"
2) "nezha"
3) "zhuluoji"
4) "gangtiexia"


# score和value一起显示
127.0.0.1:6379> zrange paihangbang 0 -1 withscores
1) "gangtiexia"
2) "30"
3) "zhuluoji"
4) "60"
5) "nezha"
6) "90"
7) "zhanlang"
8) "199"

2.4.3、获取集合元素个数:zcard

127.0.0.1:6379> zcard paihangbang
(integer) 4

2.4.4、返回某个数值的索引zrank

127.0.0.1:6379> zrange paihangbang 0 -1
1) "gangtiexia"
2) "zhuluoji"
3) "nezha"
4) "zhanlang"

127.0.0.1:6379> zrank paihangbang nezha
(integer) 2

2.4.5、获取指定数值的分数zscore

127.0.0.1:6379> zscore paihangbang nezha
"90"

2.4.6、删除元素:zrem

127.0.0.1:6379> zrange paihangbang 0 -1
1) "gangtiexia"
2) "zhuluoji"
3) "nezha"
4) "zhanlang"

127.0.0.1:6379> zrem paihangbang gangtiexia zhuluoji
(integer) 2

127.0.0.1:6379> zrange paihangbang 0 -1
1) "nezha"
2) "zhanlang"

2.5、哈希(string类型的字段(field)和值(value)的映射表

2.5.1、生成hash key

# 格式:hset key field value
如果给定的哈希表并不存在, 那么一个新的哈希表将被创建并执行 HSET 操作。
如果域 field 已经存在于哈希表中, 那么它的旧值将被新值 value 覆盖。
127.0.0.1:6379> hset info name zzj age 23 city nanjing sex man
(integer) 4

127.0.0.1:6379> hset info name zhaozhijie age 23 city nanjing sex man
(integer) 0

127.0.0.1:6379> hgetall info
1) "name"
2) "zhaozhijie"
3) "age"
4) "23"
5) "city"
6) "nanjing"
7) "sex"
8) "man"

2.5.2、查看所有字段的值:hgetall

127.0.0.1:6379> hgetall info
1) "name"
2) "zhaozhijie"
3) "age"
4) "23"
5) "city"
6) "nanjing"
7) "sex"
8) "man"

2.5.3、增加字段:hset

127.0.0.1:6379> hset info height 175
(integer) 1
127.0.0.1:6379> hgetall info
 1) "name"
 2) "zhaozhijie"
 3) "age"
 4) "23"
 5) "city"
 6) "nanjing"
 7) "sex"
 8) "man"
 9) "height"
10) "175"

2.5.4、获取对应字段的值hget

127.0.0.1:6379> hget info name
"zhaozhijie"
127.0.0.1:6379> hget info age
"23"

2.5.5、删除一个hash key对应的字段

127.0.0.1:6379> hdel info height
(integer) 1
127.0.0.1:6379> hgetall info
1) "name"
2) "zhaozhijie"
3) "age"
4) "23"
5) "city"
6) "nanjing"
7) "sex"
8) "man"

2.5.6、获取hash中所有的字段field

127.0.0.1:6379> hkeys info
1) "name"
2) "age"
3) "city"
4) "sex"

2.5.7、获取hash key对应的所有field的value

127.0.0.1:6379> hvals info
1) "zhaozhijie"
2) "23"
3) "nanjing"
4) "man"

2.5.8、删除hash

127.0.0.1:6379> del info
(integer) 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
[2.2.3] E2EE 2.0 命名【勇者】! E2EE 2.2.3 将迎来E2EE历史上最稳定最可靠版本。 修复了 核心服务器 连接定时器回收对象失败,可能导致程序奔溃的问题(感谢 小蜗牛 的逼迫)。 加入了 线程异常终止时的环境恢复机制。在COM内部或者超时终止等E2EE内部环境导致线程奔溃的环境下,线程能够自动恢复为工作状态。 [网站服务器] 修复了 静态文件 时间检测缓存(304 If-Modified-Since)未起效的问题。 修复了 静态文件 浏览器缓存检测周期无效的问题。 修复了 免费版 启动时模板数量统计不准确导致启动失败的问题(感谢KKO)。 优化了 远程服务 功能。 修复了 多值模式下接收日期类型错误的问题。 加入了 远程服务编辑器 程序。 优化了 远程服务助手 程序。 [网站请求/网站响应] 修复了 获取SessionID无效的问题(感谢 六十五公斤)。 修复了 中文名称表单可能无法获取数据的问题。 [模板编辑器] 加入了【自动换行】设置。默认为【启用】状态。 加入了【生成易语言表单接收代码】功能。可将页面表单直接生成易语言 视图函数 中的 变量定义 和 取参数 相关代码。 优化了编辑器加载速度。 [存取键值表] 加入了 子列表删除 方法。 [2.2.2] 加入了 关闭数据执行保护 函数。用来关闭当前进程的数据执行保护功能(感谢 小蜗牛)。 [网站服务器] 优化了无法从反向代理请求头获取真实客户IP时的处理机制。当获取远程请求地址失败时,则跳过请求头而直接获取客户端的远程地址。 修复了在无网站配置等环境下,关闭服务器重新启动失败错误原因为“string too long”的问题(感谢 Grapes)。 [WebSocket客户端] 修复了停止可能会一直阻塞的问题(感谢 欲)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值