您的位置:首页 > 数据库 > Redis

Redis的下载安装及基本语法学习

2020-07-06 10:27 267 查看

一、概述

Redis是一个高性能的Nosql 内存数据库,支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
Redis支持数据的备份,即master-slave模式的数据备份。

二、下载安装

百度云盘
提取码:ar0e

注意,以上方式开启的时临时服务,使用时不要关闭

三、基本语法

1、key-value存储
set key value -- 设置指定key的值
get key -- 获取指定key的值
exists key -- 指定key是否存在,1 存在 0 不存在
expire key seconds -- 指定key的过期时间后,在经过指定的秒数后,服务器就会自动删除生存时间为0的键
type key -- 所存储的值类型
127.0.0.1:6379> set test "hello redis"
OK
127.0.0.1:6379> get test
"hello redis"
127.0.0.1:6379> exists test
(integer) 1
127.0.0.1:6379> exists kk
(integer) 0
127.0.0.1:6379> type test
string
127.0.0.1:6379> expire test 10
(integer) 1
127.0.0.1:6379> get test
(nil)
127.0.0.1:6379> exists test
(integer) 0
2、哈希(Hash)存储

Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象
类似于Map,key为map名,field-value 即key-value

hset key field value -- 将哈希表key中的字段field的值设为value
hget key field -- 获取存储在哈希表key中指定字段的值
hmset key field value [field value ...] -- 同时将多个field-value对设置到哈希表key中
hmget key field [field ...] -- 获取所有给定字段的值
hdel key field [field ...] -- 删除所有给定字段的值
hgetall key -- 获取在哈希表中指定 key 的所有字段和值
hkeys key -- 获取所有字段filed
hvals key -- 获取所有值
hlen key -- 哈希表key中字段的数量
127.0.0.1:6379> hset myset name "tom"
(integer) 1
127.0.0.1:6379> hget myset name
"tom"
127.0.0.1:6379> hmset strs name "tom" phone "17789456123" salary "6000"
OK
127.0.0.1:6379> hmget strs name phone salary
1) "tom"
2) "17789456123"
3) "6000"
127.0.0.1:6379> hdel strs phone salary
(integer) 2
127.0.0.1:6379> hget strs name
"tom"
127.0.0.1:6379> hgetall strs
1) "name"
2) "tom"
127.0.0.1:6379> hkeys strs
1) "name"
127.0.0.1:6379> hlen strs
(integer) 1
127.0.0.1:6379> hvals strs
1) "tom"
3、列表(List)存储

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
类似于List,值有序且可重复

lpush key value [value ...] -- 将一个或多个值插入到列表头部
rpush key value [value ...] -- 将一个或多个值插入到列表尾部
llen key -- 列表长度
lset key index value -- 通过索引设置列表元素的值(必须是已有索引,可以用来替换值)
lindex key index -- 通过索引获取列表中的元素
linsert key BEFORE|AFTER pivot value -- 在pivot值的前后插入元素
lrange key start stop -- 获取索引开始结束的这段列表,0 -1即获取所有
lpushx key value  -- 将一个值插入到已存在的列表头部
rpushx key value  -- 将一个值插入到已存在的列表尾部
rpop key -- 移除列表的最后一个元素,返回值为移除的元素
127.0.0.1:6379> lpush list "tom" "jerry" "ken" "jordan"
(integer) 4
127.0.0.1:6379> llen list
(integer) 4
127.0.0.1:6379> lset list 4 "sarry"
(error) ERR index out of range
127.0.0.1:6379> lset list 5 "sarry"
(error) ERR index out of range
127.0.0.1:6379> lset list 0 "sarry"
OK
127.0.0.1:6379> lindex list 0
"sarry"
127.0.0.1:6379> linsert list AFTER "sarry" "lilei"
(integer) 5
127.0.0.1:6379> lrange list 0 -1
1) "sarry"
2) "lilei"
3) "ken"
4) "jerry"
5) "tom"
127.0.0.1:6379> lpushx
(error) ERR wrong number of arguments for 'lpushx' command
127.0.0.1:6379> lpushx list "herry"
(integer) 6
127.0.0.1:6379> lrange list 0 -1
1) "herry"
2) "sarry"
3) "lilei"
4) "ken"
5) "jerry"
6) "tom"
127.0.0.1:6379> rpush list "yoyo" "heli"
(integer) 8
127.0.0.1:6379> lrange list 0 -1
1) "herry"
2) "sarry"
3) "lilei"
4) "ken"
5) "jerry"
6) "tom"
7) "yoyo"
8) "heli"
127.0.0.1:6379> rpushx list "eboo"
(integer) 9
127.0.0.1:6379> lrange list 0 -1
1) "herry"
2) "sarry"
3) "lilei"
4) "ken"
5) "jerry"
6) "tom"
7) "yoyo"
8) "heli"
9) "eboo"
127.0.0.1:6379> rpop list
"eboo"
127.0.0.1:6379> rpushx list "yoyo"
(integer) 9
127.0.0.1:6379> lrange list 0 -1
1) "herry"
2) "sarry"
3) "lilei"
4) "ken"
5) "jerry"
6) "tom"
7) "yoyo"
8) "heli"
9) "yoyo"
4、集合(Set)存储

Set 是 String 类型的无序集合,成员是唯一的,集合中不能出现重复的数据(类似于java Set)

sadd key member1 [member2] -- 向集合添加一个或多个成员
smembers key -- 返回集合中的所有成员
scard key -- 获取集合的成员数
sismember key member -- 判断 member 元素是否是集合 key 的成员
srem key member1 [member2] -- 移除集合中一个或多个成员
127.0.0.1:6379> sadd set "aa" "bb" "cc" "aa"
(integer) 3
127.0.0.1:6379> smembers set
1) "aa"
2) "cc"
3) "bb"
127.0.0.1:6379> scard set
(integer) 3
127.0.0.1:6379> sismember set cc
(integer) 1
127.0.0.1:6379> srem set "aa" "bb"
(integer) 2
127.0.0.1:6379> smembers set
1) "cc"
5、有序集合(sorted set)存储

有序集合也是string类型元素的集合,且不允许重复的成员
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序
有序集合的成员是唯一的,但分数(score)却可以重复

ZADD key score1 member1 [score2 member2] -- 向有序集合添加一个或多个成员,或者更新已存在成员的分数
ZCARD key -- 获取有序集合的成员数
ZCOUNT key min max -- 计算在有序集合中指定区间分数的成员数
ZLEXCOUNT key min max -- 在有序集合中计算指定字典区间内成员数量
ZRANK key member -- 返回有序集合中指定成员的索引
ZREM key member [member ...] -- 移除有序集合中的一个或多个成员
ZREMRANGEBYLEX key min max -- 移除有序集合中给定的字典区间的所有成员
127.0.0.1:6379> zadd sortedSet 1.0 "one_float" 2 "two" 3 "three" 1 "one" 2 "tt"
(integer) 5
127.0.0.1:6379> zcard sortedSet
(integer) 5
127.0.0.1:6379> zcount sortedSet 1 2
(integer) 4
127.0.0.1:6379> zlexcount sortedSet [a [q
(integer) 2
127.0.0.1:6379> zrange sortedSet 0 -1
1) "one"
2) "one_float"
3) "tt"
4) "two"
5) "three"
127.0.0.1:6379> zrange sortedSet 0 -1 WITHSCORES
1) "one"
2) "1"
3) "one_float"
4) "1"
5) "tt"
6) "2"
7) "two"
8) "2"
9) "three"
10) "3"
127.0.0.1:6379> zrange sortedSet 1 2 WITHSCORES
1) "one_float"
2) "1"
3) "tt"
4) "2"
127.0.0.1:6379> ZRANK sortedSet "tt"
(integer) 2
127.0.0.1:6379> zrank sortedSet "one_float"
(integer) 1
127.0.0.1:6379> zrem sortedSet "one_float" "tt"
(integer) 2

四、发布订阅

五、事务

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: