redis
redis
安装
这个直接百度redis的源码的下载地址就行
记得下面几个dos命令
- D;
- cd redis
- redis-sever.exe redis.windows.conf
- redis-cli.exe -h 127.0.0.1 -p 6379
设置键值对
- set key value
- get key
配置
语法
- redis localhost:6379>config get config_setting_name
参数
- daemonize no redis默认不是以守护进程的方式运行,可以改成yes启用守护进程(window不支持守护进程的配置)
- pidfile /var/run/redis.pid 当redis以守护进程的方式运行时,redis会默认把pid写入/var/run/redis.pid文件
- port 6379 指定redis监听接口,默认端口6379
- bind 127.0.0.1 绑定主机地址
- timeout 300 当客服闲置多少秒关闭连接,如果指定为0,表示关闭该功能
- loglevel notice 指定日志的记录级别,redis共四个级别:debug,verbose,notice,warming,默认notice
- logfile stdout 日志记录方式,默认标准输出,如果配置redis为守护进程方式运行,而配置日志记录方式为标准输出,则日志将会发送给/dev/null
- databases 16 设置数据库的数量,默认为0,可以用select命令在连接上指定数据库id
- save
指定在多长事件内,有多少次更新操作,将数据同步到数据文件,可以多个条件按配合 - expire
暂时就这么多吧
数据类型
- string
- hash
- list
- set
- zset
String
- redis最基本的类型,是二进制安全的,最大能存储512mb
Hash
- 是键值(key=>value)对集合
- 是一个string类型的field和value的映射表,hash特别适合存储对象
List
- 简单的字符串列表,按照插入顺序排序。可以将元素添加到头部或者尾部
Set
- string类型的无序集合,通过hash表实现的,所以一切操作的复杂度都是O(1)
Zset
- string类型的元素的集合,且不允许重复的成员,其每个元素都会关联一个double类型的分数,这样子实现了分数来排序
Redis命令
基本语法
- $redis-cli
语法
- $redis-cli -h host -p -a password (语法)
ping
Redis键
语法
command key_name
- set runoobkey redis
- del runoobkey
- dump key
- expire key
- exprire key seconds
- exprire key timestamp
- pexprire key milliseconds
- pexprire key milliseconds-timestamp
- keys pattern
- move key db
- persist key
- pttl key
- ttl key
- randomkey
- rename key newkey
- renamenx key newkey
- scan cursor [match pattern] [count count]
- type key
Redis字符串
语法同上,字符命令
- set key value
- get key
- getrange key start end
- getset key value
- getbit key offset value
- mget key1[key2...]
- setbit key offset value
- setex key seconds vaue
- setnx key value
- setrangge key offset value
- strlen key
- mset key value[key value...]
- msetnx key value[key value]
- psetex key milliseconds value
- incr key
- incrby key increment
- incrbyfloat key increment
- decr key
- decrby key decrement
- append key value
hash
redis hash 是一个string类型的field和value的映射表,每个hash可以存储2^32-1的键值对
redis hash 命令
- hdel key filed1[field2]
- hexists key field
- hset key field value
- hget key field
- hvals key
- hincrby key field mincrement
- hincrbyel key field increment
- hincrbyfloat key field increment
- hkeys key
- hmget key field[field1]
- hmset key field value[field1 value1]
- hgetall
- hscan key currsor match pattern
list
redis list是简单的字符串列表,按照插入顺序排序,可以添加元素到列表的头部或者是尾部
类似栈或者队列
对于栈就有压栈和出栈
对于队列入队和出队
有左右两个操作方式,left和right
push pop len rem trim set
list命令
- blpop key[key1] timeout
- brpop key[key1] timeout
- brpoplpush source destination timeout(高级应用,单线程应用)
- lindex key index
- linsert key before|after pivot value
- llen key
- lpush key
- lpop key
- lpush key start stop
- lrem key index value
- lset key index value
- ltrim key start stop
- rpop key
- rpush key value1[value2]
- rpush key value
set
集合成员是唯一的。
set命令
- sadd member[member1]
- scard key
- sdiffstorem destination key1[key2]
- sinter key1[key2]
- spop key
- srandemember key [count]
- srem key member[member1]
zset
redis中的有序集合,通过绑定一个double类型的数值确定它的大小
zset命令
- zadd key score1 member1 [score2 memebr2]
- zcard key
- zcount key min max
- zinsertstore destination numkeys key[key...]
- zlexcount key min max
- zrange key start stop [withscores]
- zrangebylex key min max [limit offset count]
- zrangebyscore key min max [- withscores ] [ limit]
- zrank key member
- zremrangebyrank key min max
- zremrangebyscore key min max
- zrevrange key start stop [withscores]
- zrevrangebyscore key max min [withscores]
- zscore key membe
- zunionstore destination numkeys key [key...]
- zscan key cursor [match pattern] [count count]
redis方案
- keys *
- set操作的“权限”比hset高
redis事务
multi事务开启命令
exec事务执行命令
discard 回滚操作
watch 监控
Java集成redis进入项目的方式
- jedis
- redistemplate