1、redis配置文件redis.windows.conf、redis.windows-service.conf
其中redis.windows-service.conf是将redis注册为系统服务的配置文件
redis.windows.conf是非系统服务直接用命令启动的配置文件
参考的:https://www.jianshu.com/p/7f5ecfc388a0
2、redis要能远程链接更改上面2个配置文件中如下内容,重启redis
更改为:
bind 192.168.1.120 127.0.0.1
protected-mode yes
port 63799
requirepass 111111
说明:
bind是redis服务器ipconfig看到的网卡ip,在其他机器上链接该redis服务时,直接使用该redis所在服务器外网ip即可;
参见:https://www.cnblogs.com/browselife/p/11220980.html
https://blog.csdn.net/KgdYsg/article/details/90899728
protected-mode no,若这里调整为no,则bind、requirepass均没有设置时,也可以允许任意远程链接redis,这里设置为yes时,必须给bind或requirepass进行设置,否则远程链接不上redis服务。
port 63799,远程链接时没有使用默认端口6379,可以调整一个新的端口号,这里如63799;
requirepass 111111,这里是设置远程链接时链接密码。
这里bind 192.168.1.120 127.0.0.1表示可以使用host为192.168.1.120或者127.0.0.1进行链接。
【如果指定了bind,则说明只允许来自指定网卡的Redis请求。如果没有指定,就说明可以接受来自任意一个网卡的Redis请求。】多网卡ipconfig截图如下:
3、redis5种数据类型【全是key:value格式,仅仅value格式不同】
字符串、列表、哈希、集合、有序集合
字符串:存储小于1M时,字符串扩容扩大到原来字符串长度的2倍,大于1M时,字符串扩容1M。
列表:list插入、删除特别快,索引定位很慢。
哈希:hash适合存储对象,无序。
集合:set无序、value唯一,且key均为null,value唯一表示value不可重复否则添加不进去。
有序集合:sorted set有序,value唯一,且有score排序权重,默认从小到大。
4、redis链接
daemonize设置redis为后台启动。
cmd中客户端链接到redis
>redis-cli -h 127.0.0.1 -p 6379
cmd中汉子正常显示(否则显示3个16进制数)
>redis-cli -h 127.0.0.1 -p 6379 --raw
cmd中停止redis服务
>redis-cli shutdown
cmd中使用修改后的配置启动redis服务
>redis-ser redis.cnf
redis设置过期时间【以对象为单位】
127.0.0.1:6379>expire name 5 【设置5秒后name过期】
127.0.0.1:6379>ttl name 【name还有多少秒过期】
127.0.0.1:6379>setex name 20 wangwu 【同时设置值及过期时间20秒】
事务演示
127.0.0.1:6379>multi 【开启事务】
127.0.0.1:6379>。。。 【一堆堆操作,暂时都缓存在队列中】
127.0.0.1:6379>exec 【执行开启事务后的所有操作,且作为一个事务,要么成功,要么失败】
127.0.0.1:6379>multi 【开启事务】
127.0.0.1:6379>。。。 【一堆堆操作】
127.0.0.1:6379>discard 【执行开启事务后的所有操作,事务回滚,即放弃这些操作】
5、redis链接上后存储数据操作
字符串string
127.0.0.1:6379>set name zhangsan 【给name设置值】
127.0.0.1:6379>get name 【获取name的值】
127.0.0.1:6379>set age 15 【给age设置值】
127.0.0.1:6379>incr age 【age自增】
127.0.0.1:6379>decr age 【age自减】
127.0.0.1:6379>incrby age 5 【age增5】
127.0.0.1:6379>decrby age 5 【age减5】
127.0.0.1:6379>mset age 20 name lisi sex 男 【批量设值】
127.0.0.1:6379>quit 【退出redis命令窗口】
127.0.0.1:6379>mget age name sex 【批量获取值】
127.0.0.1:6379>append name -test 【给name值追加-test,如 lisi-ceshi】
127.0.0.1:6379>del name 【删除name的value】
127.0.0.1:6379>getset name maliu 【显示原name的值后,再给name新设值】
127.0.0.1:6379>clear 【清屏】
列表list
127.0.0.1:6379>lpush books 语文 数学 化学 【左侧列表插入,插入后就在列表最左侧】
127.0.0.1:6379>lpop books 【左侧列表弹出,如这里的 化学】
127.0.0.1:6379>rpush books 英语 地理 【右侧列表插入,插入后在列表最后一个元素之后】
127.0.0.1:6379>rpop books 【右侧列表弹出,如这里的 地理】
127.0.0.1:6379>llen books 【获取列表元素个数】
127.0.0.1:6379>lrange books 0 -1 【获取列表所有元素】
127.0.0.1:6379>ltrim books 1 0 【清除列表所有元数】
哈希hash
127.0.0.1:6379>hset drinks 牛奶 蒙牛 【哈希drinks索引,牛奶值存蒙牛】
127.0.0.1:6379>hget drinks 牛奶 【获取哈希drinks的牛奶的值】
127.0.0.1:6379>hmset drinks 茶叶 龙井 饮料 可乐 【批量设置值】
127.0.0.1:6379>hgetall drinks 【获取所有drinks的key、value】
127.0.0.1:6379>hset drinks amount 10 【给value设置数值】
127.0.0.1:6379>hincrby drinks amount 5 【给数值加5】
127.0.0.1:6379>hincrby drinks amount -3 【给数值减3】
127.0.0.1:6379>hdel drinks 牛奶 茶叶 【删除2个key:value键值对】
127.0.0.1:6379>hexists drinks 茶叶 【是否存在茶叶,1存在,0不存在】
127.0.0.1:6379>hkeys drinks 【查看drinks所有key】
127.0.0.1:6379>hvals drinks 【查看drinks所有value】
集合set
127.0.0.1:6379>sadd books python java c++ c++ 【c++只会存储一个】
127.0.0.1:6379>smembers books 【查看集合所有成员,可以看到是无序的】
127.0.0.1:6379>sismember books python 【python成员是否存在,1存在,0不存在】
127.0.0.1:6379>srandmember books 2 【随机获取2个成员】
127.0.0.1:6379>srem books c++ 【删除c++这个成员】
127.0.0.1:6379>spop books 1 【随机弹出一个成员】
127.0.0.1:6379>sdiff books mybooks 【两个集合做差集】
127.0.0.1:6379>sinter books mybooks 【两个集合做交集】
127.0.0.1:6379>sunion books mybooks 【两个集合做并集】
有序集合sorted set
127.0.0.1:6379>zadd items 3000 java 【添加java使用量3000】
127.0.0.1:6379>zcard items 【查看成员个数】
127.0.0.1:6379>zrange items 0 1 【查看前2个成员】
127.0.0.1:6379>zrange items 0 -1 【查看所有成员】
127.0.0.1:6379>zrange items 0 -1 withscores 【查看所有成员的score----默认正序显示】
127.0.0.1:6379>zrevrange items 0 -1 withscores 【查看所有成员的score----倒序显示,-inf表示负无穷,inf表示正无穷】
127.0.0.1:6379>zrem items java python 【删除成员 java、python】