redis的下载安装(windows版)
可以到redis的github上下载redis最新的发布版,github路径
https://github.com/MSOpenTech/redis
我的百度网盘中有Redis-x64-3.2.100.msi
安装过程和普通软件的安装一样,记住redis的默认端口是6379,
也可以在安装的过程中修改
redis的密码配置
redis默认是没有密码的,这样会有很大的安全风险,所以需要配置密码,密码的配置
也非常简单,在redis的安装目录下找到文件redis.windows-service.conf
,搜索requirepass,#requirepass foobared
将注释去掉,就开启了密码验证,密码就是后面的字符串foobared,然后将密码
修改成我们自己的即可
redis服务的开启
在cmd中进入redis的安装目录,然后执行命令开启redis服务:redis-server redis.windows.conf
看到下图即成功开启了redis服务
然后新开一个cmd,进入redis安装目录,执行命令redis-cli -h 127.0.0.1 -p 6379 -a your password
该命令会给出提示redis 127.0.0.1:6379>
然后输入PING,如果输出PONG,说明连接成功,可对redis进行其他操作
redis中的数据结构
redis是一个key-value内存数据库,所以所有的数据都是以key-value
的形式存放在内存(或者磁盘)的
字符串的存取
set key value //设置key对应的valueset name loveabc
设置name的值为loveabc
可以使用get命令得到key对应的值get name
返回值是loveabc
哈希值的存取
一个哈希值可对应多对键值对,可用于存放对象信息
hmset key field1 value1 [field2 value2…]
如存放一个有name,password与email的user对象hmset user name loveabc password loveabcpassword email loveabc@github.com
使用hget key field 获取存储在指定键的哈希字段的值hget user email
返回loveabc@github.com
hgetall key 获取key上的所有键值对hgetall user
返回
name
loveabc
password
loveabcpassword
email
loveabc@github.com
列表的存取
lpush key value1 [value2 value3 …]存放多个值到列中lpush course java redis mysql
存放java,redis,mysql到列表course中
llen key 获取列表的长度llen course
返回3
lrange key start end 从列表key中返回第start到第end的内容lrange course 0 2
返回mysql redis java(从返回结果来看,这更像是栈stack)
无序集合的存取
无序集合里面的数据是无序且不重复的
sadd key member1 [member2 member2 …] 添加多个元素到无需集合key中sadd member m1 m2 m1
存放m1,m2到无序集合member中
smembers key 得到无序集合key中的所有元素smembers member
返回m1,m2(存放两个m1,单集合里面只有一个)
有序集合的存取
有序集合里面存储的是无重复但有权重的数据
zadd key score value [score1 value1 …] 存放多个值到有序集合中
zadd hot 100 java 50 php
zcard key 查看该集合中有多少元素
zcrad hot 返回2
zscore key value 返回集合key value的权重
zscore hot java 返回100
zrem key value 删除指定元素
zrem hot php 删除php
zrange key index1 index2 [withscores] 取数据,按照权重升序
zrevrange key index1 index 2 [withscores] 取数据,按照权重降序
zrange hot 0 -1
zremrangebyrank key index1 index2 按照序号删除数据
zremrangebyscore key minscore maxscore 按照分数删除
zrangebyscore key minscore maxscore 按照分数范围查找
zrangebyscore key minscore maxscore limit 0 2 按照分数范围查找并只取前两条
zincrby hot 5 php 为php的权重加5
zcount key minscore maxscore 计算min-max权重之间元素的个数
redis多数据库
一个redis支持16个数据库,使用select index可切换数据库,select 5 切换到第6个数据库
redis事务
rdis也支持事务处理,multi开启事务 exec提交事务 discard回滚事务
redis持久化
RDB方式,不需要配置,在指定的时间间隔内生成数据集的时间点快照
AOF方式,记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集
java使用jedis包操作redis数据库
首先引入Jedis所在的jar包
java代码:
github路径:https://github.com/loveabc/redis-java.git
关于redis更多的操作命令与数据结构,可参考redis入门教程