redis:基本使用

redis安装

windows安装
下载地址: https://github.com/MSOpenTech/redis/releases。
我下载的是64位msi, 安装完毕进入安装的根目录,启动redis-cli.exe

其他安装见:
https://www.runoob.com/redis/redis-install.html

redis连接和配置

redis连接

连接本地:redis-cli, 然后执行ping
远程连接:redis-cli -h host -p port -a password

查询配置名: CONFIG GET 配置名

比如:
config get loglevel
config get *

设置配置名

比如:
config set loglevel "notice"

具体配置项

https://www.runoob.com/redis/redis-conf.html

Redis keys 常用命令

DEL key,该命令用于在 key 存在时删除 key。
DUMP key,序列化给定 key ,并返回被序列化的值。
EXISTS key,检查给定 key 是否存在。
EXPIRE key seconds, 为给定 key 设置过期时间,以秒计。
EXPIREAT key timestamp,EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置过期时间。 不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp)。
PEXPIRE key milliseconds,设置 key 的过期时间以毫秒计。
PEXPIREAT key milliseconds-timestamp,设置 key 过期时间的时间戳(unix timestamp) 以毫秒计
KEYS pattern,查找所有符合给定模式( pattern)的 key 。
MOVE key db,将当前数据库的 key 移动到给定的数据库 db 当中。
PERSIST key,移除 key 的过期时间,key 将持久保持。
PTTL key,以毫秒为单位返回 key 的剩余的过期时间。
TTL key,以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。
RANDOMKEY,从当前数据库中随机返回一个 key 。
RENAME key newkey,修改 key 的名称
RENAMENX key newkey,仅当 newkey 不存在时,将 key 改名为 newkey 。
TYPE key,返回 key 所储存的值的类型。

redis数据类型

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
一个键key最大能存储 512MB。
每个 hash 可以存储 2^32 -1 键值对(40多亿)。
列表最多可存储 2^32 - 1 元素 (4294967295, 每个列表可存储40多亿)。

hash类型(类似于Python的字典dict)

Hash(哈希)Redis hash 是一个键值(key=>value)对集合。Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。

hmset: 设置多个(multi)键值对: hmset myhash key1 "hello" key2 "hello2"
hset: 设置键值对: hset myhash key3 "hello3"
hget: 获取值: hget myhash key3

list列表

lpush: 从左边添加一个
rpush: 从右边添加一个
lrange: 查看列表

lpush mylist "hello1"
(integer) 1
127.0.0.1:6379> lpush mylist "hello2"
(integer) 2
127.0.0.1:6379> rpush mylist "www1"
(integer) 3
127.0.0.1:6379> lrange mylist 0 10

  1. "hello2"
  2. "hello1"
  3. "www1"

集合set

Redis 的 Set 是 string 类型的无序集合。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
sadd:命令添加一个 string 元素到 key 对应的 set 集合中,成功返回 1,如果元素已经在集合中返回 0。
smembers: 查看集合成员

127.0.0.1:6379> sadd myset "hello1"
(integer) 1
127.0.0.1:6379> sadd myset "hello2"
(integer) 1
127.0.0.1:6379> sadd myset "hello3"
(integer) 1
127.0.0.1:6379> smembers myset

  1. "hello2"
  2. "hello3"
  3. "hello1"

有序集合sortedset

zset(sorted set:有序集合)Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。
redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数(score)却可以重复。
zadd: 增加有序成员
zrangebyscore: 按照排序查询成员

127.0.0.1:6379> zadd mysortedset 100 "hello1"
(integer) 1
127.0.0.1:6379> zadd mysortedset 99 "hello2"
(integer) 1
127.0.0.1:6379> zadd mysortedset 98 "hello3"
(integer) 1
127.0.0.1:6379> zrangebyscore mysortedset 0 100

  1. "hello3"
  2. "hello2"
  3. "hello1"
posted @ 2020-02-18 17:32  Adamanter  阅读(96)  评论(0)    收藏  举报