Redis安装配置以及基础命令

Redis

配置

讲redis压缩包解压,并在Path中添加redis位置

以管理员身份打开cmd,并进入redis目录下,输入下面语句

redis-server --service-install redis.windows.conf --loglevel verbose --maxheap 200m

在这里插入图片描述

如果出现以上情况,将--maxheap 200m删除即可。

在这里插入图片描述

已成功,启动服务

在这里插入图片描述

Redis基础知识

redis的客户端和服务端命令:

redis-server  # 服务器命令
	启动一个redis的命令是:redis-server redis.windows.conf
redis-cli  # 客户端命令
	启动一个客户端的redis命令:redis-cli

一个redis.windows.conf配置就是一个redis服务器。需要启动多个服务器时,只需要修改配置文件的名称,再用redis-server就可以启动了

启动一个端口号为6380(默认6379)的redis服务器

1、创建一个配置文件,并改名

在这里插入图片描述

2、打开该配置文件,改端口号,改为6380

在这里插入图片描述
3、开启服务器

在redis目录下输入该语句

在这里插入图片描述

出现以上情况,便已开启

4、开启客户端

在这里插入图片描述

Redis基础命令

    • keys * //返回键(key)
    • keys list* //返回名以list开头的所有键(key)
    • exists list1 //判断键名为list1的是否存在 存在返回1, 不存在返回0
    • del list1 //删除一个键(名为list1)
    • expire list1 10 //设置键名为list1的过期时间为10秒后
    • ttl list1 //查看键名为list1的过期时间,若为-1表示已过期 或 永不过期
    • move age 1 //将键名age的转移到1数据库中。
    • select 1 //表示进入到1数据库中,默认在0数据库
    • persist age //移除age的过期时间
    • flushdb:删除所有的数据 清除当前所在库的所有数据
    • flushall 清空所有数据

数据类型

(一)String字符串

setget
msetmget
setnxmsetnx
incrdecr
incrbydecrby
setrangegetrange
set方法:

设置key对应的值为string类型的value,如果该key已经存在,则覆盖key对应的value值。所以在redis中key只能有一个。

127.0.0.1:6379> set name lijie 
get:

根据key获取value值

127.0.0.1:6379> get name 
Setnx:

设置一个不存的字符串,返回0表示设置失败,已存在。返回1表示设置新值成功,nx是not exit的意思。

127.0.0.1:6379> setnx name zs (integer) 0 127.0.0.1:6379> setnx age 20 (integer) 1 
setex:

设置字符串,同时设置有效期。

127.0.0.1:6379> setex color 10 red OK 立即查询 127.0.0.1:6379> get color"red" 10秒后查询 127.0.0.1:6379> get color (nil)

Setrange:

替换字符串。

setrange 替换什么 从哪里开始(0) 替换成什么

127.0.0.1:6379> set email jalja@sina.com OK 127.0.0.1:6379> get email "jalja@sina.com" 127.0.0.1:6379> setrange email 6 163.com (integer) 14 127.0.0.1:6379> get email "jalja@163.comm" 
Mset:

一次设置多个key-value,返回OK表示全部设置成功,返回0表示全部失败。如果存在则替换。

127.0.0.1:6379> mset name1 zs name2 ls OK 127.0.0.1:6379> get name1 "zs" 127.0.0.1:6379> get name2 "ls" 
msetnx:

一次设置多个不存在的key-value,返回1表示全部设置成功,返回0表示全部失败。

127.0.0.1:6379> msetnx name3 kk name4 mm name2 LL (integer) 0 127.0.0.1:6379> get name3 (nil) 127.0.0.1:6379> get name4 (nil) 
getset:

获取原值,并设置新值

127.0.0.1:6379> getset name4 UU (nil) 127.0.0.1:6379> get name4 "UU" 127.0.0.1:6379> getset name4 RR "UU" 
getrange:

获取key对应value的子字符串

127.0.0.1:6379> get email "jalja@163.comm" 127.0.0.1:6379> getrange email 0 4 "jalja" 
mget:

一次获取多个key对应的value值,不存在返回nil

127.0.0.1:6379> mget name1 name2 name3 name4 name5 1) "zs" 2) "ls" 3) (nil) 4) "RR" 5) (nil) 
incr:

对key对应的value做加1操作,并返回新值

127.0.0.1:6379> get age "20" 127.0.0.1:6379> incr age (integer) 21 
incrby:

与incr类似,加指定值,key不存在的时候会设置key,并认为该key原来的value=0

127.0.0.1:6379> get age "21" 127.0.0.1:6379> incrby age 9 (integer) 30 127.0.0.1:6379> incrby age -5 (integer) 25 127.0.0.1:6379> incrby height 10 (integer) 10 
decr:

对key对应的value做减1操作

127.0.0.1:6379> get height "10" 127.0.0.1:6379> decr height (integer) 9 127.0.0.1:6379> decr height (integer) 8 
decrby:

对key对应的value减去指定的值

127.0.0.1:6379> get height "8" 127.0.0.1:6379> decrby height 3 (integer) 5 127.0.0.1:6379> decrby height -3 (integer) 8 
append:

对key对应的vlaue字符串追加,返回新字符串的长度

127.0.0.1:6379> get name1 "zs" 127.0.0.1:6379> append name1 ML (integer) 4 127.0.0.1:6379> get name1"zsML" 
strlen:

获取key对应value的长度

127.0.0.1:6379> get name1 "zsML" 127.0.0.1:6379> strlen name1 (integer) 4 

(二)Hash类型

​ Redis hash 是一个string类型的filed和value的映射表、它的添加、删除操作都是0、1(平均操作)。Hash特别适合存储对象。相较于对象的每个字段存成单个string类型。将一个对象存储在hash类型中会占用更少的内存,并且可以更方便存取整个对象。

hset:

设置hash filed为指定值,如果key不存在,则先创建。key存在则替换

127.0.0.1:6379> hset user:001 name zs (integer) 1 127.0.0.1:6379> hget user:001 name "zs" #设置一个user:001 的用户的name为zs(可以将user:001看做一个表) 
hget:

获取指定field字段的值

127.0.0.1:6379> hget user:001 name (nil) 
hsetnx:

设置hash filed为指定值,如果key不存在,则先创建。如果存在则返回0表示设置失败。

127.0.0.1:6379> hsetnx user:001 name ML (integer) 0 127.0.0.1:6379> hsetnx user:001 age 1 (integer) 1 
hmset:

同时设置hash的多个file

127.0.0.1:6379> hmset user:002 name MM age 20 OK 127.0.0.1:6379> hget user:002 name "MM" 127.0.0.1:6379> hget user:002 age "20" 
hmget:

获取全部指定的hash filed,必须指定获取的key的名称

127.0.0.1:6379> hmget user:002 name age 1) "MM" 2) "20" 
hincrby:

对hash filed加上指定的值

127.0.0.1:6379> hget user:002 age “20” 127.0.0.1:6379> hincrby user:002 age 5 (integer) 25 127.0.0.1:6379> hincrby user:002 age -5 (integer) 20

hexists:

测试指定的filed是否存在,返回1表示存在,返回0表示不存在

127.0.0.1:6379> hexists user:002 name (integer) 1 127.0.0.1:6379> hexists user:002 age (integer) 1 127.0.0.1:6379> hexists user:002 height (integer) 0 
hlen:

返回指定hash的field的数量

127.0.0.1:6379> hlen user:002 (integer) 2 
**hdel **

删除指定hash 的filed字段,返回1表示删除成功0:表示删除失败

127.0.0.1:6379> hget user:002 age "20" 127.0.0.1:6379> hdel user:002 age (integer) 1 127.0.0.1:6379> hdel user:002 age (integer) 0 127.0.0.1:6379> hget user:002 age (nil) 
hkeys:

返回hash 的所有filed

127.0.0.1:6379> hkeys user:001 1) "name" 2) "age" 127.0.0.1:6379> hkeys user:002 1) "name" 
hvals:

返回hash的所有value

127.0.0.1:6379> hvals user:001 1) "zs" 2) "1" 127.0.0.1:6379> hvals user:002 1) "MM" 

(三)List类型

​ List是一个链表结构,主要功能是push、pop,获取一个范围的所有值等等,操作中key理解为链表的名字。Redis的list类型其实就是一个每个子元素都是string类型的双向链表。我们可以通过push、pop操作链表的头部或者链表尾部添加元素,这样list既可以作为栈,又可以作为队列。

lpush:

在key对应list的头部添加字符串元素,返回list中元素的个数

127.0.0.1:6379> lpush list1 "hello" (integer) 1 127.0.0.1:6379> lpush list1 "word" (integer) 2 
lrange:

获取list中的元素,

127.0.0.1:6379> lrange list1 0 -1(0:第一个,-1:最后一个) 1) "word" 2) "hello" 
rpush:

在key对应的list尾部添加元素

127.0.0.1:6379> rpush list2 10 (integer) 1 127.0.0.1:6379> rpush list2 11 (integer) 2 127.0.0.1:6379> lrange list2 0 -1 1) "10" 2) "11" 
linsert:

在key对应list的特定位置前或后添加字符串

127.0.0.1:6379> lrange list2 0 -1 1) "10" 2) "11" 127.0.0.1:6379> linsert list2 before 11 10.5 (integer) 3 127.0.0.1:6379> linsert list2 after 11 11.5 127.0.0.1:6379> lrange list2 0 -1 1) "10" 2) "10.5" 3) "11" 4)"11.5" 
lset:

更改list中指定下标的元素,返回ok表示设置成功

127.0.0.1:6379> lrange list2 0 -1 1) "10" 2) "10.5" 3) "11" 127.0.0.1:6379> lset list2 1 10.00 OK 127.0.0.1:6379> lrange list2 0 -1 1) "10" 2) "10.00" 3) "11" 
lrem:

从key对应list中删除n个和value相同的元素(n<0 从尾部删除,n=0 全部删除,n>0从头部删除。)

127.0.0.1:6379> lrange list 0 -1 1) "two" 2) "one" 3) "one" 127.0.0.1:6379> lrem list 1 one (integer) 1 127.0.0.1:6379> lrange list 0 -1 1) "two" 2) "one" 
ltrim:

保留list中指定范围的数据,其他的

127.0.0.1:6379> lrange list2 0 -1 1) "10" 2) "10.00" 3) "11" 4) "12" 127.0.0.1:6379> ltrim list2 1 2 OK 127.0.0.1:6379> lrange list2 0 -1 1) "10.00" 2) "11" 
lpop:

从list的头部删除元素,并返回该元素

127.0.0.1:6379> lrange list 0 -1 1) "two" 2) "one" 127.0.0.1:6379> lpop list "two" 127.0.0.1:6379> lrange list 0 -1 1) "one" 
rpop:

从list尾部删除元素,并返回该元素

rpoplpush:

从第一个list的尾部删除元素,并添加到第二个list的头部

127.0.0.1:6379> lrange list 0 -1 1) "one" 127.0.0.1:6379> lrange list1 0 -1 1) "word" 2) "hello" 127.0.0.1:6379> rpoplpush list1 list "hello" 127.0.0.1:6379> lrange list 0 -1 1) "hello" 2) "one" 127.0.0.1:6379> lrange list1 0 -1 1) "word" 
lindex

返回名称为key的list中index位置的元素<===>list[index]

127.0.0.1:6379> lrange list 0 -1 1) "hello" 2) "one" 127.0.0.1:6379> lindex list 1 "one" 
llen:

*返回指定key对应list的长度<====> len(list)*

127.0.0.1:6379> lrange list 0 -1 1) "hello" 2) "one" 127.0.0.1:6379> llen list (integer) 2 

(四)Sets类型

Set是一个string类型的无序集合,不允许重复。Set是通过hash table实现的。添加、删除、查找的复杂度都是0(1)。对集合我们可以取并集、交集、差集。

sadd:

向key对应的set集合中添加元素,返回1表示添加成功,返回0表示失败

127.0.0.1:6379> sadd myset1 one (integer) 1 127.0.0.1:6379> sadd myset1 two (integer) 1 
Smembers:

查看set集合中的元素

127.0.0.1:6379> smembers myset1 1) "two" 2) "one" 
srem:

删除key对应set集合中的元素,返回1表示删除成功0表示失败

127.0.0.1:6379> srem myset1 two (integer) 1 
spop:

随机删除set中的一个元素并返回该元素

127.0.0.1:6379> smembers myset1 1) "three" 2) "one" 3) "four" 127.0.0.1:6379> spop myset1 "four" 127.0.0.1:6379> smembers myset1 1) "three" 2) "one" 
sdiff:

返回给定set集合的差集(以在前的set集合为标准)

127.0.0.1:6379> smembers myset1 1) "three" 2) "one" 127.0.0.1:6379> smembers myset2 1) "two" 2) "one" 127.0.0.1:6379> sdiff myset1 myset2 1) "three" 127.0.0.1:6379> sdiff myset2 myset1 1) "two" 
sdiffstore:

返回所有给定set集合的差集,并将差集添加到另外一个集合中

127.0.0.1:6379> smembers myset1 1) "three" 2) "one" 127.0.0.1:6379> smembers myset2 1) "two" 2) "one" 127.0.0.1:6379> sdiffstore myset3 myset1 myset2 (integer) 1 127.0.0.1:6379> smembers myset3 1) "three" 
sinter:

返回所有给定集合的交集

127.0.0.1:6379> smembers myset1 1) "three" 2) "one" 127.0.0.1:6379> smembers myset2 1) "two" 2) "one" 127.0.0.1:6379> sinter myset1 myset2 1) "one" 
sinterstore:

返回所有给定集合key的交集,并将结果存为另一个key

127.0.0.1:6379> smembers myset1 1) "three" 2) "one" 127.0.0.1:6379> smembers myset2 1) "two" 2) "one" 127.0.0.1:6379> sinterstore myset4 myset1 myset2 (integer) 1  
sunion

返回所有给定集合的并集

127.0.0.1:6379> smembers myset1 1) "three" 2) "one" 127.0.0.1:6379> smembers myset2 1) "two" 2) "one" 127.0.0.1:6379> sunion myset1 myset2 1) "three" 2) "two" 3) "one" 
sunionstore

返回所有给定集合的并集,并将结果存入另一个集合

127.0.0.1:6379> smembers myset1 1) "three" 2) "one" 127.0.0.1:6379> smembers myset2 1) "two" 2) "one" 127.0.0.1:6379> sunionstore myset5 myset1 myset2 (integer) 3 
smove:

从第一个集合中移除元素并将该元素添加到另一个集合中。

127.0.0.1:6379> smembers myset1 1) "three" 2) "one" 127.0.0.1:6379> smembers myset5 1) "three" 2) "two" 3) "one" 127.0.0.1:6379> smove myset5 myset1 two (integer) 1 127.0.0.1:6379> smembers myset5 1) "three" 2) "one" 127.0.0.1:6379> smembers myset1 1) "three" 2) "two" 3) "one" 
Scard:

返回set集合中元素的个数 llen(list) strlen (str) hlen(hash)

127.0.0.1:6379> smembers myset1 1) "three" 2) "two" 3) "one" 127.0.0.1:6379> scard myset1 (integer) 3
sismember:

测试member元素是否是名称为key的set集合返回1:表示是0:不是

127.0.0.1:6379> smembers myset1 1) "three" 2) "two" 3) "one" 127.0.0.1:6379> sismember myset1 tree (integer) 0 127.0.0.1:6379> sismember myset1 three (integer) 1 
srandmember:

随机返回set集合中的一个元素,但不删除该元素

127.0.0.1:6379> smembers myset1 1) "three" 2) "two" 3) "one" 127.0.0.1:6379> srandmember myset1 "one" 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值