一、安装

1、下载  Redis 压缩包;

2、解压到指定安装目录;(解压后结果:)

 

redis3 编译安装 redis-cli安装_bc

 

点击:redis 里的 redis-server.exe 文件启动;

点击:redis 里的 redis-cli.exe 操作

----------------------------------------------------------------------

可以安装、安装即可安装到Windows服务:

打开 cmd.exe 窗口;

安装命令: redis-server.exe --service-install redis.windows.conf --loglevel verbose 

----------------------------------------------------------------------

卸载服务,在cmd命令窗口中输入:

卸载命令: redis-server --service-uninstall

 

===================================================

 

但是安装好之后,可能Redis并没有启动,启动命令如下:

----------------------------------------------------------------------

启动命令:redis-server --service-start

----------------------------------------------------------------------

停止命令:redis-server --service-stop

----------------------------------------------------------------------

可以安装多个实例:

1、redis-server --service-install –service-name redisService1 –port 10001

   redis-server --service-start –service-name redisService1

2、redis-server --service-install –service-name redisService2 –port 10002

   redis-server --service-start –service-name redisService2

3、redis-server --service-install –service-name redisService3 –port 10003

   redis-server --service-start –service-name redisService3

 

===配置 与 操作命令:================================================================================

如果遇到没有安装gcc或者tcl8.5的问题,可以参照下面两篇博客:

安装gcc:

安装tcl8.5:http://www.41443.com/HTML/DB2/20150525/373733.html

二、redis结构,配置redis

 

说明:redis-server默认是在前台启动的,是根据配置文件redis.conf中的配置进行启动的,这是要启动redis-cli就需要再开一个终端进行操作,所以可以修改redis.conf的daemonize为yes

 

3.redis.conf配置文件

1.redis.conf文件位置

安装redis的目录下

2.redis.conf的主要配置项

  • daemonize:是否以后台daemon方式运行
  • pidfile:pid文件位置
  • port:监听的端口号
  • timeout:请求超时时间
  • loglevel:log信息级别
  • logfile:log文件位置
  • databases:开启数据库的数量
  • save * *:保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。
  • rdbcompression:是否使用压缩
  • dbfilename:数据快照文件名(只是文件名,不包括目录)
  • dir:数据快照的保存目录(这个是目录)
  • appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。
  • appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)

将daemonize参数改为yes,这样就可以在后台运行server,而不用再开一个终端去执行./redis-cli了

redis3 编译安装 redis-cli安装_Redis 安装 与 使用命令_02

修改配置文件后的server启动命令:./redis-server ../redis.conf

说明:./redis-server(进入src目录,执行当前目录下的redis-server),然后使用上一目录下的redis.confi配置文件启动

redis3 编译安装 redis-cli安装_Redis 安装 与 使用命令_03

也可以设置启动脚本去启动redis,这个可以自行去百度

 

三、redis.cli命令

启动redis-server后,才可以启动redis-cli

启动命令:redis-cli 

 

针对redis的命令:

(redis可以有多个数据库,每个数据库有索引编号,从0开始)

命令

意义

keys *

查看redis下所有的key(*可以是一个正则表达式)

exists key

redis下是否存在key

type key

获得key的value的类型(string等)

del key

删除key

rename oldkey newkey

将oldkey更名为newkey(如果newkey存在,则先将newkey删除)

dbsize

返回redis下key的数量

select index

切换数据库(默认是0,如果切换1等后面会多一个【1】的标识)

move key index

将当前数据库下的key移动到索引为index的数据库下

flushdb

删除当前数据库中的所有key

flushall

删除所有数据库中的key

 

string类型的操作:

如果想删除string类型的,就直接删除key就可以了

操作

命令

例子

例子结果

增加或更改key,value

set key value

set key1 value1

key1的值是value1

获得key的值

get key

get key1

value1

批量返回多个key的value

mget key1 key2

同命令

获得key1和key2的值

批量给多个key复制

mset key1 value1 key2 value2

同命令

分别赋给key1、key2的value为value1、value2

给为数值的value+1

incr key

key为1时,使用左侧命令

2

给为数值的value增加n(n为数字)

incrby key n

key为2时,incry key 2

4

给为数值的value-1

decr key

key为2时,使用左侧命令

1

给为数值的value减去n(n为数字)

decrby key n

key为4时,decrby key 2

2

在string的value后追加内容

append key value

key为abc时,append key de

key的value变为abcde

获得value的子串

substr key start end

key为1234567,substr key 1 3

获得key的子串234(子串索引从0开始计算)

 

list类型的操作:

(list的索引是从0开始计算的)list底层用的是链表

操作

命令

例子

例子结果

向list型的value尾部增加一个值

rpush key value1 value2

rpush key1 abc

key1的尾部增加了一个子项“abc”

向list型的value头部增加一个值

lpush key value1 value2

lpush key1 123

key1的头部增加了一个子项“123”

查询list的长度

llen key

key1有3个子项,llen key1

3

查询key的值

lrange key start end

key有3个子项“123”,“abc”,“cde”

lrange key 0 -1

将全部子项都查询出来了,也可以用0 2的区间等查询部分结果

截取key的值,保留部分区间的值(索引)

ltrim key start end

ltrim key 0 1

只保留了key的0位和1位的值,截取了

获得某个索引位置的值

lindex key index

lindex key 1

获得了索引为1位置的值

修改某索引位置的值

lset key index value

lset key 1 abcdef

将索引为1位置的值替换成了“abcdef”

删除key下的某一个value

lrem key count value

lrem key 1 value

删除count个值为value的数据,如果count为0,则所有为value的数据都删除

删除list值中的首元素

lpop key

同命令

第一个元素被删除

删除list值中的尾元素

rpop key

同命令

最后一个元素被删除

删除key1中的尾元素,并插到key2中头部

rpoplpush key1 key2

同命令

key1的尾元素被删除,并添加到了key2的头元素位置

 

 

set类型的操作:

是一种集合,是无序的集合,没有先后顺序,可以进行交集、并集、差集等操作,set类型的元素不会出现重复元素,元素唯一。

操作

命令

例子

例子结果

增加或更改set的key,value

sadd key value1 value2 

sadd key1 1 2 3

key1的值是1,2,3(可以写多个值)

返回set的所有元素

smembers key

同命令

返回key为key的所有元素

查询set下是否存在某一个元素

sismember key member

sismember key1 5

查询key1下是否有5(返回的是1和0,1表示存在)

删除set中的一个member

srem key member

srem key1 5

删除key1下为5的元素

随机删除set下的一个元素,并返回这个值

spop key

同命令

随机删除key下的一个元素

返回key下的元素个数

scard key

同命令

返回key为key的元素个数

从一个set下把某一元素移动到另一set下

smove key2 key3 member

同命令

将key2下的member移动到key3下

求多个set的交集

sinter key1 key2

同命令

显示key1和key2下的交集

将多个set的交集存储到一个set下

sinterstore key3 key1 key2

同命令

求key1和key2的交集并存储到key3下

求多个set的并集

sunion key1 key2

同命令

显示key1和key2的并集

将多个set的并集存储到一个set下

sunionstore key3 key1 key2

同命令

求key1和key2的并集并存储到key3下

求多个set的差集

sdiff key1 key2

同命令

显示key1和key2的差集

求多个set的差集存储到一个set下

sdiffstore key3 key1 key2

同命令

求key1和key2的差集并存储到key3下

随机返回set下的一个元素

srandmember key

同命令

随机返回key下的一个元素

 

zset类型的操作:

有序集合,每个元素都关联一个序号,元素去重。zset的命令都是以z开头的。zset的value由score(序号)和值两部分组成

操作

命令

例子

例子结果

增加zset的key和value

zadd key score member

zadd key 1 abc

增加key下的序号为1的值为abc

返回zset下某一member的index

(元素按score从小到大排序)

zrank key member

zrank key abc

返回元素名为abc的索引(索引是从0开始计算的,所以比自己加的score少1)

返回zset下某一member的index

(元素按score从大到小排序)

zrevrank key member

zrevrank key abc

返回元素名为abc的索引(索引是从0开始计算的,所以比自己加的score少1)

返回zset下某一区间的值

(元素按score从小到大排序0

zrange key start end

zset key 0 -1

返回zset下区间start到end的值(0 -1是全部)

元素从小到大排序

返回zset下某一区间的值

(元素按score从小到大排序)

zrevrange key start end

zset key 0 -1

返回zset下区间start到end的值(0 -1是全部)

元素从小到大排序

删除zset下的某一个member

zrem key member

同命令

删除key下的member

返回zset某一元素的score

zscore key member

同命令

返回key下元素member的score

返回zset某一score区间的元素

zrangebyscore key start end

zrangebyscore key 1 4

返回key下的score为1到4的元素

删除zset某一score区间的元素

zremrangebyscore key start end

zremrangebyscore key 1 2

删除key下score区间为1到2的元素

 

zset还支持并集、交集、差集的计算,会根据最后的aggregate来决定score是sum还是min或max

 

hash类型的操作

hash就是哈希,可以理解为map,一个key对value的类型。hash类型的数据组成key:{field:value}

hash的命令都是以h开头的,后面跟着redis的key,再后面的参数与string类型的操作类似,可以将hash的field想象成string的key。

操作

命令

例子

例子结果

hash插入数据

hset key field value

hset key1 age 20

在key1下增加了一个age:20的hash值

获得hash中某一个field对应的value值

hget key field

hget key age

获得key下的age的值

批量获得hash的多个field对应的值

hmget key field1 field2 

hmget key name age

批量获得key下的name和age的值

hash批量插入数据

hmset key field1 value1 field2 value2

hmset key name tom age 20

批量插入key的value,name:tom age:20

查看hash的某一个key下是否存在field

hexists key field

hexists key name

查看key下是否存在field叫做name的项

返回hash的元素个数

hlen key

同命令

返回key的元素个数

根据field,删除hash的某一个元素

hdel key field

同命令

删除key下键为field的元素

显示hash中所有的键及对应的值

hgetall key

同命令

显示key下所有的键及对应的值(但是是分行显示的)

返回hash的所有元素的键

hkeys key

同命令

返回key下的所有元素的键(field)

显示hash中所有键对应的值

hvals key

同命令

返回key下的所有键对应的值,不包含键

将hash下某一键的值增加一定数值

hincrby key field integer

hincrby key field 10

将key的field的值增加10(如果值是数值会直接加10;

如果不是数值,该键的值会直接变为100

 

 

* redis 还支持持久化的本地存储,和主从的搭建等。