Redis基础
来源:互联网 发布:宝软网软件下载 编辑:程序博客网 时间:2024/06/07 19:31
声明:本文参考网上资料整理而成,只为梳理记录。如有错误望不吝赐教。在此拜谢!持续完善修改中…
随时参考
教程
定义
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 —[摘自百度百科]
应用场景
- 取最新N个数据的操作
- 排行榜应用,取TOP N操作
- 需要精准设定过期时间的应用
- 计数器应用
- Uniq操作,获取某段时间所有数据排重值
- 实时系统,反垃圾系统
- Pub/Sub构建实时消息系统
- 构建队列系统
- 缓存
参考链接
服务搭建
下载服务并启动
Redis下载地址:http://redis.io/download
linux环境
$ wget http://download.redis.io/releases/redis-2.8.17.tar.gz$ tar xzf redis-2.8.17.tar.gz$ cd redis-2.8.17$ make$ make test$ redis-server ../redis.conf //注意 redis.conf 的路径
以上:redis.conf 为 Redis 的自定义配置文件
客户端链接
启动客户端 $ redis-cli
客户端链接远程 Redis 服务 $ redis-cli -h host -p port -a password
检查 Redis 服务是否正常
redis> pingPONG
将 [key]= name 和 [value] = Mikayla 放入 redis 库中
redis> set name MikaylaOKredis> get name"jiu"
make 过程常见的错误
异常1
make[2]: cc: Command not found
异常原因:没有安装 gcc
解决方案:yum install gcc-c++
异常2
zmalloc.h:51:31: error: jemalloc/jemalloc.h: No such file or directory
异常原因:一些编译依赖或原来编译遗留出现的问题
解决方案:make distclean。清理一下,然后再make
在make成功以后,需要make test。在make test出现异常
- 异常3 couldn't execute "tclsh8.5": no such file or directory
异常原因:没有安装 tcl
解决方案:yum install -y tcl
Redis 数据类型
表格展示
针对以上数据类型,做以下简单练习:
[备注 * 每种类型可以和对应的 Redis 命令的实现做对比]
public class TestRedis { public static void main(String[] args) { Jedis jedis = new Jedis("Redis 服务 IP 地址"); System.out.println("链接成功"); System.out.println("服务正在运行:" + jedis.ping()); //string 字符串 jedis.set("redis_string", "mikayla_redis_string"); System.out.println("redis 存储key:【redis_string】的字符串为:" + jedis.get("redis_string")); //map 哈希 Map userMap = new HashMap(); userMap.put("username", "runoob"); userMap.put("points", "200"); userMap.put("password", "runoob"); jedis.hmset("redis_map:1", userMap); System.out.println("redis 存储key:【redis_map:1】的字符串为:" + JsonUtil.toJson(jedis.hgetAll("redis_map:1"))); //list 列表 jedis.lpush("redis_site-list", "Runoob"); jedis.lpush("redis_site-list", "Google"); jedis.lpush("redis_site-list", "Taobao"); List<String> list = jedis.lrange("redis_site-list", 0 ,2); for(int i=0; i<list.size(); i++) { System.out.println("列表项为: "+list.get(i)); } //set 集合 jedis.sadd("redis_set", "set2", "set5", "set3"); System.out.println("redis_set>>> "+ JsonUtil.toJson(jedis.smembers("redis_set"))); //zset 有序集合 TODO:实现失败,待补充 /*jedis.zadd("redis_zset", 0, "redis"); jedis.zadd("redis_zset", 0, "mongodb"); jedis.zadd("redis_zset", 0, "rabitmq"); System.out.println("redis_zset>>> " + JsonUtil.toJson(jedis.zrangeByLex("redis_zset", 0, 5)));*/ // 获取数据并输出 Set<String> keys = jedis.keys("*"); Iterator<String> it=keys.iterator() ; while(it.hasNext()){ String key = it.next(); System.out.println(key); } }}
Redis 常用命令
查看库中所有的 key
redis> keys *
清空 Redis 数据
1、使用redis客户端链接远程redis服务
2、使用命令 redis> flushdb
删除当前库中的所有key redis> flushall
删除所有数据库中的key
String 类型的存放
redis> set name MikaylaOKredis> get name"Mikayla"
Hash 类型的存放
redis> hmset user:1 username Mikayla password 123OKredis> hgetall user:11)"username"2)"Mikayla"3)"password"4)"123"redis>
List 类型的存放
redis> lpush listname redis(integer) 1redis> lpush listname mongodb(integer) 2redis> lpush listname mysql(integer) 3redis> lrange listname 0 101)"redis"2)"mongodb"3)"mysql"redis>
Set 类型的存放
无序集合,元素不重复
redis> sadd setname redis(integer) 1redis> sadd setname mongodb(integer) 1redis> sadd setname mysql(integer) 1redis> sadd setname redis(integer) 0redis> smembers setname1)"mysql"2)"mongodb"3)"redis"redis>
Zset 类型的存放
有序集合,元素不重复
redis> sadd zsetname 0 redis(integer) 1redis> sadd zsetname 0 mongodb(integer) 1redis> sadd zsetname 0 mysql(integer) 1redis> sadd zsetname 0 redis(integer) 0redis> smembers setname1)"redis"2)"mongodb"3)"mysql"redis>
- Redis基础
- Redis基础
- redis基础
- Redis基础
- redis基础
- redis 基础
- redis基础
- Redis基础
- redis基础
- Redis基础
- Redis基础
- Redis 基础
- redis基础
- Redis基础
- Redis基础
- redis基础
- Redis基础
- redis基础
- org.springframework.dao.InvalidDataAccessApiUsageException
- C++ 顺序栈和链式栈的实现
- 如何充分利用 EA 原则?
- [NA]Lab3:免费午餐-求解周期性三对角阵方程组
- 图像特征学习与分类方法研究
- Redis基础
- Python遍历文件树
- Java【后台学习】编写后台接口
- BeautifulSou使用入门
- MooseFS维护技巧集锦
- Lintcode143 Sort Colors || solution 题解
- MySQL--单表更新--UPDATE
- 全选全不选 获取选中的复选框的值
- 《深入理解计算机操作系统》资料